import threading import time
event = threading.Event()
def chihuoguo(name): # 等待事件,进入等待阻塞状态 print '%s 已经启动' % threading.currentThread().getName() print '小伙伴 %s 已经进入就餐状态!'%name time.sleep(1) event.wait() # 收到事件后进入运行状态 print '%s 收到通知了.' % threading.currentThread().getName() print '小伙伴 %s 开始吃咯!'%name
threads = []
thread1 = threading.Thread(target=chihuoguo, args=("a", )) thread2 = threading.Thread(target=chihuoguo, args=("b", ))
threads.append(thread1) threads.append(thread2)
for thread in threads: thread.start()
time.sleep(0.1)
print '主线程通知小伙伴开吃咯!' event.set()
Thread-1 已经启动 小伙伴 a 已经进入就餐状态! Thread-2 已经启动 小伙伴 b 已经进入就餐状态! 主线程通知小伙伴开吃咯! Thread-1 收到通知了. 小伙伴 a 开始吃咯! Thread-2 收到通知了. 小伙伴 b 开始吃咯!
ev.wait() ev.set() ev.clear()