join 等待线程

44.3 join 等待线程

t.join() 阻塞当前线程直到 t 结束;可传 timeout 秒数超时。

主线程应 join 子线程,否则子线程可能没跑完程序就退出。

join 与 timeout

# ========================================
# 示例:join 等待
# 说明:join(timeout=2) 最多等 2 秒
# ========================================
import threading
import time

def slow():
    time.sleep(3)
    print('慢任务完成')

t = threading.Thread(target=slow)
t.start()
ok = t.join(timeout=2)  # 2 秒后主线程继续
print('join 返回', ok, '线程仍存活' if t.is_alive() else '线程已结束')