在并发编程中,如果生产者处理速度很快,消费者处理速度较慢,那生产者就必须等消费者处理完,反之亦然。
生产者消费者模式
生产者和消费者之间不进行直接通讯,而是通过阻塞队列来进行通讯。所以,阻塞队列就像是一个中间人,一个缓冲区,平衡了生产着和消费者的处理能力。
import queue
import threading
q =queue.Queue(10)
def producer(name):
count =1
while True:
q.join()
q.put(count)
print("生产者{}正在生产{}个包子".format(name, count))
count += 1
def countomer(name):
count =1
while True:
baozi = q.get()
print("消费者{}正在吃第{}哥个包子".format(name,baozi))
count +=1
q.task_done()
def main():
t1 = threading.Thread(target=producer,args=("张三",))
t2 = threading.Thread(target=countomer, args=("李四",))
t1.start()
t2.start()
if __name__ == '__main__':
main()