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()