|
#!/usr/bin/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 True:
if self.__Queue.full():
time.sleep(1)
else:
self.__Queue.put('baozi')
time.sleep(1)
print '%s 生产了一个包子' % (self.__Name)
class Consumer(Thread):
def __init__(self, name, queue):
self.__Name = name
self.__Queue = queue
super(Consumer, self).__init__()
def run(self):
while True:
if self.__Queue.empty():
time.sleep(1)
else:
time.sleep(1)
self.__Queue.get()
print '%s 消费了一个包子' % (self.__Name)
que = Queue(maxsize = 100) #队列空间大小,队列是安全的
c1 = Producer('老张', que)
c1.start()
c2 = Producer('老李', que)
c2.start()
c3 = Producer('老马', que)
c3.start()
for item in range(20):
name = 'chentao%d' % (item,)
temp = Consumer(name, que)
temp.start()
|
|
|