共計 819 個字符,預(yù)計需要花費 3 分鐘才能閱讀完成。
在 Python 中,join()
方法用于等待線程完成其任務(wù)。當(dāng)線程調(diào)用 join()
方法時,主線程將等待該線程完成執(zhí)行,然后再繼續(xù)執(zhí)行后面的代碼。
join()
方法有兩種用法:
join()
方法不帶參數(shù):調(diào)用該方法的線程將等待該線程執(zhí)行完成。
import threading
def my_function():
print("Thread started")
# 執(zhí)行線程任務(wù)
print("Thread finished")
# 創(chuàng)建線程
my_thread = threading.Thread(target=my_function)
# 啟動線程
my_thread.start()
# 等待線程執(zhí)行完成
my_thread.join()
print("Main thread finished")
輸出:
Thread started
Thread finished
Main thread finished
join(timeout)
方法帶有一個可選的超時參數(shù)。如果指定了超時時間,那么主線程將等待指定的時間,如果線程在超時時間內(nèi)沒有執(zhí)行完畢,則主線程會繼續(xù)執(zhí)行后續(xù)代碼。
import threading
def my_function():
print("Thread started")
# 模擬長時間運行的任務(wù)
for _ in range(5):
pass
print("Thread finished")
# 創(chuàng)建線程
my_thread = threading.Thread(target=my_function)
# 啟動線程
my_thread.start()
# 等待線程執(zhí)行完成,最多等待 1 秒
my_thread.join(1)
print("Main thread finished")
輸出:
Thread started
Thread finished
Main thread finished
需要注意的是,如果主線程在調(diào)用 join()
方法之前,線程已經(jīng)執(zhí)行完成,則 join()
方法將立即返回,不會有任何等待。
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!
正文完