1线程等待(join方法)
· 在多线程的程序中往往一个线程要等待其他线程执行完毕才可以继续执行,这时就可以使用join 函数
· 使用方法
线程对象.join() 在一个线程代码中执行这条语句,当前的线程就会停止执行,一直等到指定对象结束后才会继续执行,(即这条语句启动阻塞与等待的作用)
· join(timeout=None) 参数 timeout 用于设置超时时间,单位秒,如果为None,则一直等待,直到结束
import threading
import time
values = []
# 线程体函数
def thread_body():
print(f'{threading.current_thread().name} 开始!')
for i in range(3):
print(f'{threading.current_thread().name} 执行!')
values.append(i)
# 线程休眠
time.sleep(3)
print(f'{threading.current_thread().name}结束!')
# 线程等待
if __name__ == '__main__':
# 创建线程对象
thread = threading.Thread(target=thread_body)
# 执行线程体
thread.start()
# 说明:在当前线程中(主线程)调用了join(),就以为着必须等待 thread 线程执行完毕,才会执行主线程。
# 现象:类似于将主线程阻塞了。
# thread.join