执行join()的时机

来源:8-7 实现任务处理线程池Pool

坐在巨人的肩膀上

2021-08-10

你好老师,既然stop()是标记线程结束,join()是等待线程结束,直接在第一个循环里面执行join(),可以吗?

    def join(self):
        for i in range(self.pool.size()):
            thread = self.pool.get(i)
            thread.stop()
            # 直接在这个loop里面执行join
            thread.join()
写回答

1回答

咚咚呛

2021-08-11

在执行时间上会有差异。

因为stop之后,线程并不是马上就结束了的,还需要join来等待线程结束,这需要一些时间,放在一个循环里面,就意味着是串行结束每一个线程;而如果先stop,再另起一个循环join,则可以并行等待各个线程结束,所以在执行效率上会更优一些。

希望对你有所帮助。

3
0

(新版)计算机基础,计算机组成原理+操作系统+网络

编程之前先学这门课,系统补足计算机基础知识,夯实编程地基

7739 学习 · 1580 问题

查看课程