如何使用threading.Thread.join()建立主线程与子线程的关系
发布时间:2023-12-18 07:35:59
使用threading.Thread.join()方法可以建立主线程与子线程的关系,主线程会等待子线程执行完成后再继续执行。下面是一个使用例子。
import threading
import time
def func():
print("子线程开始执行")
time.sleep(3)
print("子线程执行完成")
# 创建子线程
t = threading.Thread(target=func)
# 启动子线程
t.start()
# 等待子线程执行完成
t.join()
print("主线程继续执行")
在上面的例子中,我们先定义了一个函数func(),该函数模拟了子线程的执行过程。在func()函数中,首先打印出"子线程开始执行",然后使用time.sleep(3)让子线程睡眠3秒,模拟耗时操作,最后打印出"子线程执行完成"。
我们首先创建了一个子线程t,并将func()函数设置为其目标函数。然后使用t.start()启动子线程。
接着调用t.join()方法,这样主线程会等待子线程执行完成后再继续执行。在本例中,主线程会等待子线程睡眠3秒后再继续执行。
最后,主线程打印出"主线程继续执行"。
运行以上代码,输出结果如下:
子线程开始执行 子线程执行完成 主线程继续执行
可以看到,主线程在子线程执行完成后才继续执行。这样可以确保子线程的任务在主线程继续执行之前完成,从而实现主线程和子线程之间的关系。
