1 import threading
2 class Produce(threading.Thread):
3
4 def __init__(self,name):
5 threading.Thread.__init__(self)
6 self.name = name
7 def run(self):
8 global x
9 tt.acquire()
10 if x > 0 :
11
12 print("我不生产了")
13 else:
14 for i in range(5):
15 x += 1
16 print("%s在生产中,第%d个"%(self.name,x))
17 tt.release()
18
19 class Consume(threading.Thread):
20 def __init__(self,name):
21 threading.Thread.__init__(self)
22 self.name = name
23 def run(self):
24 global x
25 tt.acquire()
26 if x == 0:
27
28 print("我不消费了")
29 else:
30 for i in range(5):
31 x -= 1
32 print("%s在消费中,第%d个"%(self.name,x+1))
33 tt.release()
34 x = 0
35 tt = threading.Lock()
36 # tt = threading.Condition
37
38 p = Produce("produce")
39 c = Consume("consume")
40
41 p.start()
42 c.start()
43
44 p.join()
45 c.join()