import threading,time
import Queue
import random
q=Queue.Queue()
def Chan(name):
for i in range(5):
q.put(i)
print '%s shengchan %s baozi' %(name,i)
time.sleep(random.randrange(5))
def Chi(name):
count=0
while count < 5:
d=q.get()
print '%s chichichi %s baozi' %(name,d)
count +=1
time.sleep(random.randrange(5))
p=threading.Thread(target=Chan,args=('AAAAAAAAAAA',))
c=threading.Thread(target=Chi,args=('BBBBBBBBBBB',))
p.start()
c.start()
结果
AAAAAAAAAAA shengchan 0 baozi
BBBBBBBBBBB chichichi 0 baozi
AAAAAAAAAAA shengchan 1 baozi
AAAAAAAAAAA shengchan 2 baozi
BBBBBBBBBBB chichichi 1 baozi
AAAAAAAAAAA shengchan 3 baozi
BBBBBBBBBBB chichichi 2 baozi
AAAAAAAAAAA shengchan 4 baozi
BBBBBBBBBBB chichichi 3 baozi
BBBBBBBBBBB chichichi 4 baozi
本文通过Python代码展示了经典的生产者消费者问题。使用了线程和队列来模拟生产者制作包子并放入队列,而消费者从队列中取出包子进行消费的过程。此模式有效地解决了多线程间的同步和通信问题。
666

被折叠的 条评论
为什么被折叠?



