• 【爬虫】Load版的生产者和消费者模式


    '''
    Lock版的生产者和消费者模式
    '''
    
    import threading
    import random
    import time
    
    gMoney = 1000       # 原始金额
    gLoad = threading.Lock()
    gTime = 0           # 生产次数
    
    class Producer(threading.Thread):
        def run(self):
            global gMoney
            global gTime
            while True:
                gLoad.acquire()
                if gTime < 20:
                    gTime += 1
                    money = random.randint(50,500)
                    gMoney += money
                    print("生产线程%s生成了%d元,剩余%d元"%(threading.current_thread(),money,gMoney))
                else:
                    gLoad.release()
                    break
                gLoad.release()
                time.sleep(1)
    
    
    class Consumer(threading.Thread):
        def run(self):
            global gMoney
            while True:
                gLoad.acquire()
                money = random.randint(50,500)
                if money > gMoney:
                    print("%s线程结束,需要消费%d,本金为%d"%(threading.current_thread(), money, gMoney))
                    gLoad.release()
                    break
                else:
                    gMoney -= money
                    print("消费线程%s消费了%d元,剩余%d元" % (threading.current_thread(), money, gMoney))
                gLoad.release()
                time.sleep(1)
    
    
    def main():
        for x in range(5):
            t = Producer(name="生产者线程%s"%x)
            t.start()
    
        for x in range(3):
            t = Consumer(name="消费者线程%s"%x)
            t.start()
    
    
    if __name__ == '__main__':
        main()
  • 相关阅读:
    决策树
    Caffe:深入分析(怎么训练)
    Caffe深度学习计算框架
    Caffe参数交换源码分析
    Net的网络层的构建(源码分析)
    FineTuning机制的分析
    Caffe::Snapshot的运行过程
    AdaBoost算法
    SVM支持向量机
    SMO序列最小最优化算法
  • 原文地址:https://www.cnblogs.com/st-st/p/10408904.html
Copyright © 2020-2023  润新知