我有一个从使用多个悬挂线程的API中提取数据的过程。
当其中一个API调用挂起(并且我无法控制超时)时,子线程永远不会完成,主线程将永远继续等待子线程结束。
有没有办法强制子线程从主线程结束?或者,是否有经过试验和测试的方法来执行此类数据收集过程,但不会产生此问题?
答案 0 :(得分:0)
创建线程时,您可以通过在调用其daemon
方法之前显式设置其start()
属性来控制主线程退出时是否自动终止。请参阅在线文档的Thread Objects部分。
my answer对类似问题也有一个相当详细的解释:
What does sys.exit really do with multiple threads?