a.wait() b.wait() c.wait() /// set() //all start()
coding:utf-8
import threading
import time
event = threading.Event()
def chihuoguo(name):
# 等待事件,進(jìn)入等待阻塞狀態(tài)
print '%s 已經(jīng)啟動(dòng)' % threading.currentThread().getName()
print '小伙伴 %s 已經(jīng)進(jìn)入就餐狀態(tài)!'%name
time.sleep(1)
event.wait()
# 收到事件后進(jìn)入運(yùn)行狀態(tài)
print '%s 收到通知了.' % threading.currentThread().getName()
print '小伙伴 %s 開(kāi)始吃咯!'%name
設(shè)置線程組
threads = []
創(chuàng)建新線程
thread1 = threading.Thread(target=chihuoguo, args=("a", ))
thread2 = threading.Thread(target=chihuoguo, args=("b", ))
添加到線程組
threads.append(thread1)
threads.append(thread2)
開(kāi)啟線程
for thread in threads:
thread.start()
time.sleep(0.1)
發(fā)送事件通知
print '主線程通知小伙伴開(kāi)吃咯!'
event.set()
Thread-1 已經(jīng)啟動(dòng)
小伙伴 a 已經(jīng)進(jìn)入就餐狀態(tài)!
Thread-2 已經(jīng)啟動(dòng)
小伙伴 b 已經(jīng)進(jìn)入就餐狀態(tài)!
主線程通知小伙伴開(kāi)吃咯!
Thread-1 收到通知了.
小伙伴 a 開(kāi)始吃咯!
Thread-2 收到通知了.
小伙伴 b 開(kāi)始吃咯!
threading.Event()
ev.wait()
ev.set()
ev.clear()