Python 多執行緒工具包 threading 的超簡單例子
阿新 • • 發佈:2018-11-09
筆者初學 Python,在程式設計中,遇到了多執行緒的問題,即需要一個程式中的幾部分同時執行。
例如:給一個後臺程式寫一個“心跳程序”,定時輸出訊號,以確認程式正常執行。
在網上搜索了下發現有不少帖子,但總感覺帖子中舉的例子不夠簡單和直觀,遂決定寫個自己覺得夠簡單直觀的例子。程式碼如下:
import threading # 匯入 threading 包
import time # 用來控制時間
def f1(): # 定義函式,從 0 開始,每隔一秒,列印下一個自然數
n = 0
while True:
print(n)
n = n + 1
time. sleep(1)
def f2(): # 定義函式,每隔三秒,列印字串 hahaha
while True:
time.sleep(3)
print('hahaha')
threading.Thread(target=f1).start() # 開始一個執行緒,執行 f1 函式
threading.Thread(target=f2).start() # 開始另一個執行緒,執行 f2 函式
執行程式碼,會得到以下結果:
0
1
2
hahaha
3
4
5
hahaha
6
程式將一直執行下去。
值得補充的是,筆者剛開始將 target=f1
target=f1()
,這是錯誤的。因為需要傳遞給 Thread 方法的是函式 f1,而不是其返回值 f1() 。這是個很新手的錯誤。