在Python中,join()
方法用于等待線程完成其任務。當線程調用join()
方法時,主線程將等待該線程完成執行,然后再繼續執行后面的代碼。
join()
方法有兩種用法:
join()
方法不帶參數:調用該方法的線程將等待該線程執行完成。import threading
def my_function():
print("Thread started")
# 執行線程任務
print("Thread finished")
# 創建線程
my_thread = threading.Thread(target=my_function)
# 啟動線程
my_thread.start()
# 等待線程執行完成
my_thread.join()
print("Main thread finished")
輸出:
Thread started
Thread finished
Main thread finished
join(timeout)
方法帶有一個可選的超時參數。如果指定了超時時間,那么主線程將等待指定的時間,如果線程在超時時間內沒有執行完畢,則主線程會繼續執行后續代碼。import threading
def my_function():
print("Thread started")
# 模擬長時間運行的任務
for _ in range(5):
pass
print("Thread finished")
# 創建線程
my_thread = threading.Thread(target=my_function)
# 啟動線程
my_thread.start()
# 等待線程執行完成,最多等待1秒
my_thread.join(1)
print("Main thread finished")
輸出:
Thread started
Thread finished
Main thread finished
需要注意的是,如果主線程在調用join()
方法之前,線程已經執行完成,則join()
方法將立即返回,不會有任何等待。