for example :
#!/usr/bin/env python
#coding:utf-8
#author:Bing
from threading import Thread
import time,Queue,random
que = Queue.Queue(maxsize=100)
class Product(Thread):
def __init__(self,name,que):
super(Product,self).__init__()
self.name = name
self.que = que
def run(self):
while True:
if self.que.full():
time.sleep(1)
else:
self.que.put("baozi")
print "%s:made a baozi...===" % self.name
class Consumer(Thread):
def __init__(self,name,que):
super(Consumer,self).__init__()
self.name = name
self.que = que
def run(self):
while True:
if self.que.empty():
time.sleep(1)
else:
self.que.get()
print "%s:got a baozi" % self.name
#three productor
t1 = Product("chef1",que)
t2 = Product("chef2",que)
t3 = Product("chef3",que)
t1.start()
t2.start()
t3.start()
#twenty consumer
for item in range(20):
name = "customer%d"%(item,)
temp = Consumer(name,que)
temp.start()