Python 中的線程模塊
- Python 中的線程模塊
Python 中的線程模塊
thread
模塊是一個標準模塊,提供了簡單易用的方法為程序構建多線程。在幕后,該模塊使用較低級的 _thread
模塊,在 Python 早期版本中,該模塊是多線程的流行選擇。
創建線程時,先創建一個 Thread
類的對象,它可以接受一個函數作為 target
屬性,傳遞給這個函數的參數作為 args
屬性。線程可以被賦予一個名稱,這個名稱可以在創建線程時使用 name 參數設置。
在創建 Thread
類的對象后,我們需要使用 start
方法啟動線程。為了讓主程序或線程等待新創建的線程運行結束,我們需要使用 join
方法。join
方法確保主線程(調用者線程)等待被在其上調用 join
方法的線程執行完畢。
接下來,我們會在下面的代碼中,創建三個線程,以演示如何建線程,啟動它,并且等待它執行完畢。
from threading import Thread, current_thread
from time import sleepdef print_hello():sleep(2)print("{}: Hello".format(current_thread().name))def print_message(msg):sleep(3)print("{}: {}".format(current_thread().name, msg))#創建線程
t1 = Thread(target=print_hello, name="線程 1")
t2 = Thread(target=print_hello, name="線程 2")
t3 = Thread(target=print_message, name="線程 3", args=["這是一個消息"])#啟動線程
t1.start()
t2.start()
t3.start()#等待所有線程運行完畢t1.join()
t2.join()
t3.join()
上面代碼的輸出結果是:
線程 1: Hello
線程 2: Hello
線程 3: 這是一個消息
<完>