当前位置: 首页 > 图灵资讯 > 行业资讯> python多线程中join的应用场景

python多线程中join的应用场景

来源:图灵python
时间: 2024-08-27 13:45:32

1、线程的join()方法意味着在线程完成后,程序将向下运行。让我们来看看下面的例子

fromthreadingimportThread
t=time.time()
for_inrange(5):
th=Thread(target=myfun)
th.start()
th.join()print(time.time()-t)
#结果为5.0047078132629395秒

2、在这里,start()之后,立即join(),这意味着每个线程在下一个循环之前都必须运行结束,这与不使用多线程没有区别。但是,如果需要计算多线程运行时间,则需要使用此join()

我们先来看看不需要join()的情况。

fromthreadingimportThread
t=time.time()
for_inrange(5):
th=Thread(target=myfun)
th.start()print(time.time()-t)
#结果为0.0009980201721191406秒

3、它甚至没有等一秒钟就输出了结果,5个2是在打印后输出的。这是因为print(time.time() - t)它不同于5个循环线程以外的第6个线程。它不会等到5个线程运行结束后才开始运行。因此,我们无法获得上述5个线程的运行时间。我们需要等待5个线程结束。

代码如下

fromthreadingimportThread
t=time.time()ths=[]
for_inrange(5):
th=Thread(target=myfun)
th.start()
ths.append(th)forthinths:
th.join()print(time.time()-t
#结果为1.0038363933563232

join()不仅仅是用于这种情况。当一步代码运行依赖于之前的代码运行时,应添加join()命令。

以上是python多线程中join的应用场景,希望对大家有所帮助。更多Python学习指导:python基础教程

本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。