欢迎来到Louis的博客

人生三从境界:昨夜西风凋碧树,独上高楼,望尽天涯路。 衣带渐宽终不悔,为伊消得人憔悴。 众里寻他千百度,蓦然回首,那人却在灯火阑珊处。
扩大
缩小

python 生产者消费者模型

import threading
import queue
import time

lock = threading.RLock()

q = queue.Queue()   #创建一个队列

def producer(id):
    '''
    生产者模型
    :param id:
    :return:
    '''
    print('厨师%s开始做包子'% id)
    for i in range(1,11):
        q.put('厨师%s做的第%s个包子'%(id,i))
        time.sleep(1)
    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:
        try:
            baozi2 = q.get(timeout=5)
            print(baozi2, '被用户%s吃了' % id)
        except Exception as e:
            print('用户%s吃完包子了'% id)
            break

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

 

posted on 2018-09-11 18:38  Louiszj  阅读(87)  评论(0编辑  收藏  举报

导航