Python的线程提供join()方法,可以让一个线程等待另一个线程执行完毕后再继续执行。
join()方法的使用说明
join()方法的功能是将所属线程的执行流程加入到调用它的线程中,等到调用它的线程的所有代码执行完毕,才会执行加入的线程。
join()方法有一个-timeout参数,表示等待时长,单位是秒。如果等待超时,join()方法就会返回。
join()方法的作用是让线程同步,等待其所依赖的线程执行完毕以后再执行。
实例说明
下面给出两个关于join()方法的使用实例:
示例1
在这个例子中,创建了两个线程A和B,线程A先执行,然后调用join()方法让线程B等待线程A执行完毕后才执行,输出的结果是先输出A线程的结果,再输出B线程的结果。
import threading
import time
def func1():
print("线程A开始执行...")
time.sleep(2)
print("线程A执行完毕...")
def func2():
print("线程B开始执行...")
time.sleep(2)
print("线程B执行完毕...")
if __name__=='__main__':
t1 = threading.Thread(target=func1)
t2 = threading.Thread(target=func2)
t1.start() # 开始执行t1线程
t1.join() # 等待t1线程执行完毕
t2.start() # 开始执行t2线程
示例2
在这个例子中,创建了1个主线程和2个子线程,每个子线程都睡眠一定时间(t1线程休眠3秒,t2线程休眠1秒),当t1线程休眠完成之后,执行t2.join()方法,等待t2线程休眠完成后再继续执行主线程。输出的结果是t1线程休眠3秒,然后t2线程再休眠1秒,最后主线程执行输出完成。
import threading
import time
def t1():
print("t1线程开始执行...")
time.sleep(3)
print("t1线程执行完毕...")
def t2():
print("t2线程开始执行...")
time.sleep(1)
print("t2线程执行完毕...")
if __name__=='__main__':
ta = threading.Thread(target=t1)
tb = threading.Thread(target=t2)
ta.start() # 启动ta线程
ta.join() # 等待ta线程执行完成
tb.start() # 启动tb线程
tb.join() # 等待tb线程执行完成
print("主线程执行完毕...")
以上就是关于python线程join()方法的作用与使用方法的完整攻略。