标签:
#!usr/bin/env python 2 #coding: utf-8 3 #Author: Andy 4 5 import threading 6 import time 7 8 def producer(): 9 print(‘等人来买包子。。。‘) 10 event.wait() 11 event.clear() # 收到信号,开始做包子,将set清空 12 print(‘开始做包子。。。。‘) 13 14 time.sleep(5) #耗时5秒 15 event.set() # 包子做好了,给consumer信号 16 17 def consumer(): 18 print(‘好饿啊,去买个包子吃下。。。。‘) 19 event.set() # 告诉producer 20 print(‘等包子做好‘) 21 time.sleep(2) 22 event.wait() # 等包子做好 23 print(‘包子真好吃。。。‘) # 收到信号 24 25 event = threading.Event() 26 27 t1 = threading.Thread(target=producer) 28 t1.start() 29 30 t2 = threading.Thread(target=consumer) 31 t3.start()
threading.Event(),有set, clear,wait等方法,方便在两个进程间通信。
当event.set()时,得到信号,继续向下执行,不再wait(),但一旦设置了set()就会一直存在,所以在下一次set之前要先clear()。
标签:
原文地址:http://www.cnblogs.com/Andy963/p/5350215.html