python多线程中join的应用场景
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培训机构:千锋教育。

猜你喜欢LIKE
相关推荐HOT
更多>>
Python如何在画布中绘制多个图表?
python如何在画布中绘制多个图表?1、说明在绘制图表时,Matplotlib模块默认先创建一块画布,然后将绘制的图表显示在画布上。若要在一个画布上画...详情>>
2023-11-14 21:04:27
python@是什么意思
python中@是什么意思通常我们所见的@符号是用于邮箱中,而在python中@符号也有着重要的作用,一个是表示修饰符,另一个则是表示矩阵乘法。表示...详情>>
2023-11-14 20:07:01
python进程池的使用注意
python进程池的使用注意1、使用注意(1)使用池时,如果未指定进程数,则默认为CPU核心数。(2)核心数量对应于计算机的逻辑处理器数量(任务管理器-...详情>>
2023-11-14 18:42:08
python多线程中join的应用场景
python多线程中join的应用场景1、线程的join()方法表示等这个线程运行完毕,程序再往下运行。我们来看下面的例子fromthreadingimportThreadt=ti...详情>>
2023-11-14 18:16:56热门推荐
python中scipy.linalg.inv()功能是什么?
沸requests在python中如何发送请求
热python自定义模块的注意点
热python如何将相对路径转换为绝对路径?
新python在列表中和列表末尾添加元素的方法
Python如何在画布中绘制多个图表?
pythonQueue在python的实例化
python@是什么意思
pythonconftest如何使用?
python列表运算详解
python进程池的使用注意
python多线程中join的应用场景
python异步中loop抛出异常的解决
pythontime模块处理系统时间的函数
技术干货






