生产者与消费者模式/day19

生产者与消费者,主要目的是为了提高效率
定义:在并发编程中使用该模式,能够解决绝大多数并发问题。
通过平衡生产线程与消费线程的工作能力,来处理程序的整体处理数据速度。

下面示例为厨师生产包子,消费者拿包子,首先需要创建一个线程队列,然后生产者往里放数据,然后消费者从队列中拿数据,
爬虫会用到,用到记得回来查

 

 



from  queue import Queue
from threading import Thread
import time,random

创建一个线程队列
q=Queue(maxsize=10)    #只能放10个包子
生产者
def cooker(name):
    count=1
    while True:
        q.put("包子%d"%(count))
        print("%s---生产了包子---%d"%(name,count))
        count+=1
        time.sleep(0.4)

消费者
def consumer(name):
    while True:
        print("%s吃了%s"%(name,q.get()))
        time.sleep(1)

if __name__ == '__main__':
    厨师1:创建两个厨师线程并启动,然后启动厨师线程开始生产包子
    c=Thread(target=cooker,args=("刘大厨",))
    c.start()
    c2=Thread(target=cooker,args=("李大厨",))
    c2.start()

    消费者:创建两个消费者,然后启动消费者线程开始拿包子
    guke1=Thread(target=consumer,args=("小明",))
    guke2=Thread(target=consumer,args=("铁蛋",))
    guke1.start()
    guke2.start()

猜你喜欢

转载自blog.csdn.net/qq_39112101/article/details/88551480