gpt4 book ai didi

python - 谁停止了我的线程?

转载 作者:太空狗 更新时间:2023-10-30 02:14:10 26 4
gpt4 key购买 nike

我有一些线程正在排队等待作业,像这样:

class Worker(Thread):
[...]
def run(self):
while not self.terminated:
job = myQueue.get_nowait()
job.dosomething()
sleep(0.5)

现在,self.terminated 只是我用来退出循环的 bool 值,但是,这就是问题所在,一天中有好几次它们在没有我干预的情况下停止工作。除了一个之外的所有线程:应用程序从 5 个工作线程开始,我随机检查它们,只有一个在工作。所有其他人的 _Thread__initialized 和 _Thread__stopped 字段都为真。线程和作业不相互交互。我应该寻找什么?

PS:我知道在没有实际代码的情况下很难尝试找出问题,但它是巨大的。

更新:实际上 Queue.Empty 是唯一被捕获的异常 - 我猜我相信让所有作业的内部错误传播而不杀死线程嗯 - 所以我将阻止所有异常并查看...

最佳答案

如果那是实际的代码,那就很明显了:myQueue.get_nowait() 在队列为空时引发异常(Empty)!

关于python - 谁停止了我的线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3620185/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com