Luk*_*ský 20
子类化Queue可能是最好的方法.这样的东西应该工作(未经测试):
def join_with_timeout(self, timeout):
self.all_tasks_done.acquire()
try:
endtime = time() + timeout
while self.unfinished_tasks:
remaining = endtime - time()
if remaining <= 0.0:
raise NotFinished
self.all_tasks_done.wait(remaining)
finally:
self.all_tasks_done.release()
Run Code Online (Sandbox Code Playgroud)
Ray*_*ger 15
在加入()方法是所有关于等待做所有的任务.如果您不关心任务是否实际完成,您可以定期轮询未完成的任务计数:
stop = time() + timeout
while q.unfinished_tasks and time() < stop:
sleep(1)
Run Code Online (Sandbox Code Playgroud)
当任务完成或超时时间已过时,此循环将存在.
雷蒙德