victory的博客

长安一片月,万户捣衣声

0%

多线程 | 等待线程结束

等待线程结束

等待线程结束: 一个线程(假设是主线程)需要等待另外一个线程(假设是t1子线程)执行结束才能继续执行。
实现: 通过调用join(timeout=None)方法
参数timeout用来设置超时时间,单位为秒。如果没有设置timeout,则可以一直等待,知道结束。

实例代码:

# coding=utf-8

import time
import threading

# 共享变量
value = []  # 多个线程都可以访问的变量


# 线程体函数
def thread_body():
    # 当前线程对象
    print('t1子线程开始...')

    for n in range(2):
        print('t1子线程执行...')
        value.append(n)
        # 线程休眠
        time.sleep(2)

    print('t1子线程结束。')


# 主线程
print('主线程开始执行...')
# 创建线程对象t1
t1 = threading.Thread(target=thread_body)
# 启动线程t1
t1.start()
# 主线程阻塞,等待t1线程结束
t1.join()
print('value = {0}'.format(value))
print('主线程继续执行...')