我有一个进程产生了两种类型的线程类。一个线程负责消耗作业队列(此类的100个线程通常正在运行)。第二个线程是终止线程。我使用的是从thread2设置的result\u done标志,问题是我的thread1等待X秒,然后检查是否设置了result\u done标志。你知道吗
def run(self):
while True:
try:
val = self.job_queue.get(True,self.maxtimeout)
except:
pass
if self.result_done.isset():
return
现在,如果maxtimeout设置为500seconds,并且我从另一个线程设置result\u done标志,那么这个线程将等待500秒,然后退出(如果队列中没有数据)。你知道吗
我想要实现的是,所有线程都会随着当前进程优雅地消亡,只要进程的任何线程设置了result\u done事件,就会正确地终止db、websocket、http连接等。你知道吗
我使用python多进程库来创建产生这些线程的进程。你知道吗
更新:所有线程都是daemon=True线程。你知道吗
为了避免等待} method :
maxtimeout
时间,您可以使用^{Event.wait(timeout)
如果在调用期间设置了事件,则返回而不等待完整的timeout
。你知道吗相关问题 更多 >
编程相关推荐