python多线程生产消费

#!/usr/bin/env python
# -*- coding: utf-8 -*-


from threading import Thread
from Queue import Queue
import time

class Producer(Thread):

def __init__(self,name,queue):
self.__name = name
self.__queue = queue
super(Producer,self).__init__()

def run(self):
while 1:
if self.__queue.full():
time.sleep(1)
else:
self.__queue.put('bread')
time.sleep(1)
print '%s produce a bread' %(self.__name,)



class Consumer(Thread):

def __init__(self,name,queue):
self.__name = name
self.__queue = queue
super(Consumer,self).__init__()

def run(self):
while 1:
if self.__queue.empty():
time.sleep(1)
else:
self.__queue.get()
time.sleep(1)
print '%s eat a bread' % (self.__name,)

que = Queue(maxsize=100)

for p in range(3):
name = 'P%d' % (p,)
temp = Producer(name, que)
temp.start()

for item in range(20):
name = 'C%d' % (item,)
temp = Consumer(name, que)
temp.start()


原文地址:https://www.cnblogs.com/zejin2008/p/7587280.html