生产者消费者模式

生产者消费者模式
产者消费者模式通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者之间不直接通信。
生产者生产商品,然后将其放到类似队列的数据结构中,消费者不找生产者要数据,而是直接从队列中取。
这里使用queue模块来提供线程间通信的机制,也就是说,生产者和消费者共享一个队列。
生产者生产商品后,会将商品添加到队列中。消费者消费商品,会从队列中取出商品。

#coding=utf-8
import threading
from queue import Queue
import time


class producer(threading.Thread):
    def run(self):
        global queue
        count=0
        while True:
            if queue.qsize()<1000:
                for i in range(100):
                    count+=1
                    msg=self.name+'生产产品'+str(count)
                    queue.put(msg)
                    print(msg)
                time.sleep(0.5)

class consumer(threading.Thread):
    def run(self):
        global queue
        while True:
            if queue.qsize()>100:
                for i in range(3):
                    msg=self.name+'消费'+queue.get()
                    print(msg)
                time.sleep(1)


if __name__=='__main__':
    #创建队列
    queue=Queue()
    #创建线程
    t1=producer()
    t2=consumer()
    t1.start()
    t2.start()

你可能感兴趣的:(生产者消费者模式)