多线程:如何避免工作线程错误导致挂起

问题描述 投票:0回答:1

我创建了一个执行多线程的脚本,每个线程都向API请求检索一些数据。不幸的是,其中一个线程可能会遇到断开连接错误(可能是因为网站的API过载),结果整个python脚本无限期挂起......当一个工作者之一时,如何强制脚本正常退出线程有断线错误?我以为使用terminate会关闭线程。

我的代码:

runId = sys.argv[1]
trth = TrThDownload(runId)
data = trth.data
concurrences = min(len(data),10)
p = pool.ThreadPool(concurrences)
p.map(trth.runDownloader, data)
p.terminate()
p.close()
p.join()
python multithreading exit terminate
1个回答
0
投票

你真的应该尝试异步编程。我更喜欢gevent。在脚本的顶部,只需执行以下操作:

import gevent
gevent.monkey.patch_all()

此外,请勿在加入前终止或关闭。只需使用加入。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.