我试图使用多线程在大量网站上搜索图片。所需网站列表作为输入。网站被放入队列,工作人员再次从队列中获取网站(我第一次使用多线程,所以如果这里有任何重大错误,请随时告诉我!)。它运行得非常好,但在处理所有条目之前不久,脚本以非常快的速度变慢,并且似乎在最后一个之前冻结1-4个条目。因此,当使用15000个网站的列表时,它在入口处~14998处停止,在19998处停止20000,依此类推。我甚至不确定我的代码的哪一部分要发布,所以这里是基本结构:
concurrent = 600
q = Queue(concurrent * 2)
for i in range(concurrent):
t = Thread(target=work)
t.daemon = True
t.start()
try:
for code in usedIDs:
q.put(code)
q.join()
def work():
while True:
code = q.get()
[...]
q.task_done()
提前致谢!