执行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回答
-
在执行时间上会有差异。
因为stop之后,线程并不是马上就结束了的,还需要join来等待线程结束,这需要一些时间,放在一个循环里面,就意味着是串行结束每一个线程;而如果先stop,再另起一个循环join,则可以并行等待各个线程结束,所以在执行效率上会更优一些。
希望对你有所帮助。
30
相似问题