什么是thread.join的最佳时机?

时间:2018-10-04 09:36:15

标签: python multithreading

我想知道哪种方法性能更好,代码1如下,在所有线程启动后将它们加入。

ts = []
for href in hrefs:
    t = create_thread_parse(href)
    t.daemon = True
    t.start()
    ts.append(t)

for t in ts:
    t.join()

如下所示的code2,在线程启动后加入。

ts = []
for p, href in enumerate(hrefs):
    t = create_thread_parse(href)
    t.daemon = True
    t.start()
    ts.append(t)
    t.join()

1 个答案:

答案 0 :(得分:1)

他们做不同的事情。

t.join会阻塞,直到t线程终止为止。因此,您的第一个版本并行运行线程,然后等待它们全部完成。第二个版本一个接一个地运行线程,直到上一个线程终止,才创建或启动新线程。