生产者消费者模型

 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() 
原文地址:https://www.cnblogs.com/dylan-wu/p/6085770.html