python多线程终止问题

时间:2016-10-07 20:22:38

标签: python multithreading freeze terminate slowdown

我试图使用多线程在大量网站上搜索图片。所需网站列表作为输入。网站被放入队列,工作人员再次从队列中获取网站(我第一次使用多线程,所以如果这里有任何重大错误,请随时告诉我!)。它运行得非常好,但在处理所有条目之前不久,脚本以非常快的速度变慢,并且似乎在最后一个之前冻结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()

提前致谢!

0 个答案:

没有答案