python多執行緒事件 執行緒間的通訊

2022-06-10 20:03:08 字數 1197 閱讀 8085

#事件,就是多執行緒之間的通訊

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,如果是多程序則去掉...