欢迎访问宙启技术站
智能推送

如何使用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秒后再继续执行。

最后,主线程打印出"主线程继续执行"。

运行以上代码,输出结果如下:

子线程开始执行
子线程执行完成
主线程继续执行

可以看到,主线程在子线程执行完成后才继续执行。这样可以确保子线程的任务在主线程继续执行之前完成,从而实现主线程和子线程之间的关系。