【Python學習筆記八】用threading.Thread實現多執行緒執行
阿新 • • 發佈:2021-11-23
工作中寫自動化指令碼時遇到一個問題:長按一個控制元件後,出現控制元件內容變化,然後校驗內容。開始寫的時候每次走到校驗的步驟時,其實前面長按的動作已經結束了,校驗總是失敗。
在一番百度之後發現了threading.Thread多執行緒的內容,下面大致講述一下,以作記錄。
先看以下程式碼:
import threading import time def test1(): m = 1 for i in range(20): print(m) time.sleep(1) m = m+1 def test2(): n = 1.0 fori in range(20): print(n) time.sleep(1) n = n+1 t1 = threading.Thread(target=test1) t2 = threading.Thread(target=test2) t1.start() t2.start()
time.sleep(15)
print("test")
程式碼中定義了兩個方法,用於迴圈輸出數字,為了區分其中一個輸出的是小數。
然後通過 "threading.Thread(target=xxx)"例項化了一個執行緒物件,把方法名作為target傳進去;後續通過threading.Thread().start()來啟動執行緒。
上述程式碼段執行結果如下:
可以看到,在啟動兩個執行緒t1、t2之後,對應的方法一直在同步執行;而且在主檔案執行到print("test")之後仍然在執行,直到執行完迴圈之後,整個指令碼才停止。
另外使用threading.Thread例項化執行緒物件時,還可以通過args新增引數,來執行一些需要傳遞引數的方法,以及如何線上程執行過程中停止,這個還需要日後進一步學習,有時間會記錄上來。