#事件,就是多執行緒之間的通訊
import threading, time
class boss(threading.thread):
def run(self):
print("boss說:從現在開始我們就要996啦,歡呼吧")
#事件設定
print(event.isset())
event.set() #event被set後,多執行緒中處在event.wait()後的程式才會被啟用執行
time.sleep(3)
print("boss:大家幹完了,就不用996了")
print(event.isset())
event.set()
class worker(threading.thread):
def run(self):
event.wait()
print("worker:哎呀媽呀,咋還996了呢")
event.clear()
event.wait()
print("worker:oh yeah......")
if __name__ == "__main__":
event = threading.event()
threads =
for i in range(5):
for t in threads:
t.start()
#執行上面的程式,可以得到下面的輸出
boss說:從現在開始我們就要996啦,歡呼吧
worker:哎呀媽呀,咋還996了呢
worker:哎呀媽呀,咋還996了呢
worker:哎呀媽呀,咋還996了呢
worker:哎呀媽呀,咋還996了呢
worker:哎呀媽呀,咋還996了呢
boss:大家幹完了,就不用996了
worker:oh yeah......
worker:oh yeah......
worker:oh yeah......
worker:oh yeah......
worker:oh yeah......
boss執行緒首先說話,並通過set對event設定狀態,啟用處於event.wait後的程式
5個wor**程首先處於wait狀態,只有等到event狀態被設定後,才會執行後面的程式,執行完後復位event的狀態,並再次進入wait狀態。
多執行緒 執行緒間通訊
wait 方法的作用是使當前執行的執行緒進入等待,執行到 wait 一行進入等待 當執行緒被喚醒時從 wait 下一行開始執行。wait 方法需要在 synchronized 塊中呼叫,否則會報錯。wait 方法會釋放鎖,其它執行緒可以競爭獲得鎖 wait 方法有乙個帶時間引數的,當時間到了可以自動...
多執行緒 執行緒間通訊
學習思路 執行緒同步 鎖 wait notify join threadlocal 通過管道輸入 輸出流 字元流 位元組流 服務如果一直處於單執行緒訪問,那將毫無意義,多使用者訪問必然產生多執行緒,而多執行緒訪問必然離不開執行緒間通訊 多執行緒操作共享資源時勢必會產生執行緒安全的問題 也就是我們說的...
python多執行緒 python多執行緒
通常來說,多程序適用於計算密集型任務,多執行緒適用於io密集型任務,如網路爬蟲。關於多執行緒和多程序的區別,請參考這個 下面將使用python標準庫的multiprocessing包來嘗試多執行緒的操作,在python中呼叫多執行緒要使用multiprocessing.dummy,如果是多程序則去掉...