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电脑。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ Python3的分支结构和循环语句怎么写12/27
- ♥ 如何切换python网页窗口09/29
- ♥ 如何在python中获取数字的最后几位08/25
- ♥ python列表知道如何获取下标的值10/15
- ♥ python中的参数是什么10/10
- ♥ 如何定义python静态方法11/13
内容反馈