1. 程式人生 > 其它 >【Python學習筆記八】用threading.Thread實現多執行緒執行

【Python學習筆記八】用threading.Thread實現多執行緒執行

工作中寫自動化指令碼時遇到一個問題:長按一個控制元件後,出現控制元件內容變化,然後校驗內容。開始寫的時候每次走到校驗的步驟時,其實前面長按的動作已經結束了,校驗總是失敗。

在一番百度之後發現了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
    for
i 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新增引數,來執行一些需要傳遞引數的方法,以及如何線上程執行過程中停止,這個還需要日後進一步學習,有時間會記錄上來。