生产者消费者模型
1 #!/usr/bin/env python 2 # coding:utf-8 3 from threading import Thread 4 from Queue import Queue 5 import time 6 7 8 9 10 class Procuder(Thread): 11 def __init__(self,name,queue): 12 self.__Name = name 13 self.__Queue = queue #容器 14 super(Procuder,self).__init__() #执行父类构造函数 15 def run(self): 16 while True: 17 if self.__Queue.full(): 18 time.sleep(1) 19 else: 20 self.__Queue.put('商品') 21 time.sleep(1) 22 print '%s 生产了一个商品' %(self.__Name,) 23 24 25 #Thread.run(self) 26 27 class Consumer(Thread): 28 29 def __init__(self,name,queue): 30 self.__Name = name 31 self.__Queue = queue #容器 32 super(Consumer,self).__init__() #执行父类构造函数 33 def run(self): 34 while True: 35 if self.__Queue.empty(): 36 time.sleep(1) 37 else: 38 self.__Queue.get() 39 time.sleep(1) 40 print '%s 消费了一个商品' %(self.__Name,) 41 que = Queue(maxsize=100) 42 43 Dylan1 = Procuder('Dylan1',que) 44 Dylan1.start() 45 Dylan2 = Procuder('Dylan2',que) 46 Dylan2.start() 47 Dylan3 = Procuder('Dylan3',que) 48 Dylan3.start() 49 50 for item in range(20): 51 name = 'Elaine%d' %(item,) 52 Elaine = Consumer(name,que) 53 Elaine.start()