知行编程网知行编程网  2022-12-05 16:30 知行编程网 隐藏边栏  2 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python多线程中join的应用场景的相关知识,包括python多线程没用,以及python线程join这些编程知识,希望对大家有参考作用。

join在python多线程中的应用场景

1、线程的join()方法是指线程运行完后程序会继续运行。让我们看下面的例子

from threading import Thread
t = time.time()
for _ in range(5):    
th = Thread(target = myfun)    
th.start()   
 th.join()print(time.time() - t)
# 结果为 5.0047078132629395 秒

2. join() 紧接着start() 这里的意思是每个线程都必须运行到结束才能进行下一个循环,所以和不使用多线程没有什么区别。但是,如果要计算多线程的运行时间,就需要用到这个join()

我们先看一下不用join()的情况

from threading import Thread
t = time.time()
for _ in range(5):    
th = Thread(target = myfun)    
th.start()print(time.time() - t)
# 结果为  0.0009980201721191406 秒

3、连1秒都没有等就输出了结果,打印完这5个2就输出了。这是因为 print(time.time() - t) 是第 6 个线程,不同于 5 个循环线程,它会在不等待 5 个线程运行完成的情况下开始运行。所以通过这种方式是不可能得到上面5个线程的运行时间的,我们需要使用join()等待5个线程全部运行完毕。

代码如下

from threading import Thread
t = time.time()ths = []
for _ in range(5):    
th = Thread(target = myfun)    
th.start()    
ths.append(th)for th in ths:    
th.join()print(time.time() - t
# 结果为 1.0038363933563232

join() 不仅仅适用于这种情况。当某步代码的执行依赖于前一步代码执行的完成时,必须添加join()命令。

以上就是python多线程中join的应用场景,

希望能对大家有所帮助。

更多Python学习指路:


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

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享