我想知道哪种方法性能更好,代码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()
答案 0 :(得分:1)
他们做不同的事情。
t.join
会阻塞,直到t
线程终止为止。因此,您的第一个版本并行运行线程,然后等待它们全部完成。第二个版本一个接一个地运行线程,直到上一个线程终止,才创建或启动新线程。