阅读量:2
在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()
方法将立即返回,不会有任何等待。