基于多线程中join()的用法实例讲解
1. 关于join()方法
在Python多线程编程中,join()方法是常用的多线程同步方法之一。该方法的作用是等待子线程结束后,再继续执行主线程。
2. join()方法的用法示例
示例1:基本用法
import threading
def task():
print("Child thread start.")
print("Child thread end.")
t = threading.Thread(target=task)
t.start()
t.join()
print("Main thread end.")
该例中,我们创建了一个名为task()的函数,并把它作为线程的target参数传入到Thread对象中。然后我们启动线程t,并调用t.join()方法使主线程等待线程t执行完毕。
当执行结果如下:
Child thread start.
Child thread end.
Main thread end.
可以看到线程t和主线程是顺序执行的。
示例2:多个子线程执行完毕后,主线程才结束
import threading
import time
def task():
print("Child thread start.")
time.sleep(2)
print("Child thread end.")
threads = []
for i in range(3):
t = threading.Thread(target=task)
t.start()
threads.append(t)
for t in threads:
t.join()
print("Main thread end.")
该例中,我们创建了3个子线程,让它们执行一个耗时为2秒的任务task()。主线程使用for循环等待每个子线程执行完毕,在所有子线程都执行完毕后,主线程才会结束。
执行结果如下:
Child thread start.
Child thread start.
Child thread start.
Child thread end.
Child thread end.
Child thread end.
Main thread end.
注意到三个子线程的开始顺序是不确定的,但是它们都在2秒后执行完毕,主线程才结束。
3. 总结
正确使用join()方法可以使程序在多线程执行时按照我们的预期顺序执行。我们可以结合实际需求,使用不同的方式来使用join()方法。当然,在多线程编程中,还有其他的同步方式,这里不再讨论。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于多线程中join()的用法实例讲解 - Python技术站