python多线程中join的应用场景

来源:千锋教育
发布时间:2023-11-14 04:02:39
分享

python多线程中join的应用场景

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、它连1秒都没有等,就输出了结果,而且5个2是在打印出这个之后才输出出来的。这是因为print(time.time()-t)是区别于那5次循环线程之外的第6个线程,它不会等待5个线程运行结束就会开始运行。所以这样是无法获得上面5个线程的运行时间的,我们需要用join()等待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学习教程请关注IT培训机构:千锋教育。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • python参数中默认值的执行 python参数中默认值的执行本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、默认值只会执行一次,如果你传入的参数是可变对象(列表,字典和类实例)的话,我们需要注
  • python序列的数学运算 python序列的数学运算本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、加操作序列的加操作使用加号(+)操作就可以。#序列的加操作print([1,2]+[3,
  • python装饰器管理函数和类的注意点 python装饰器管理函数和类的注意点本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、注意点(1)用装饰器修饰的函数或类主要应用场景,分为直接返回原始函数(类)和
  • python如何修饰带参数的装饰器 python如何修饰带参数的装饰器本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、概念修饰带有参数的函数的装饰器,装饰器的作用是返回一个函数的代理。2、修饰方法(
  • python类装饰器的使用注意 python类装饰器的使用注意本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、概念类装饰器:类实际被调用的时候会直接返回一个由函数装饰器包装好的类进行回调,让该类
  • pythoncount是什么意思 python中count是什么意思当我们想要在python中实现计数时,可以选择count函数的方法。不过它的语法和我们平常见到的有些区别,有两种语法组成。这么说肯定有一堆好奇的小伙伴们了。下面我们一