三部件:

  生产者:

    队列:先进先出

    栈:后进先出

  消费者

生产者消费者模型解决了什么问题:

  解决了不用一直等待的问题

import time
import queue
import threading

q = queue.Queue()  #线程安全

def producer(id):
    '''
    生产者
    :param id:
    :return:
    '''
    while True:
        time.sleep(2)
        q.put('包子')   #放进去一个
        print('厨师%s 生产了一个包子' % id)

for i in range(1,4):
    t = threading.Thread(target=producer,args=(i,))
    t.start()

def consumer(id):
    '''
    消费者
    :param id:
    :return:
    '''
    while True:
        time.sleep(1)
        v1 = q.get()  #拿一个
        print('顾客%s 吃了一个包子' % id)

for i in range(1,3):
    t = threading.Thread(target=consumer,args=(i,))
    t.start()
View Code