スレッドでPythonキューを使用しています。私は、ワーカーがクラッシュしたときにスクリプトがハングして終了させないことに気付きました。以下はその例です:ワーカーがクラッシュしたときに待ち行列がハングする
from Queue import Queue
from threading import Thread
num_worker_threads = 2
def worker():
while True:
item = q.get()
1/item
q.task_done()
q = Queue()
for i in range(num_worker_threads):
t = Thread(target=worker)
t.daemon = True
t.start()
q.put(0)
q.join()
ワーカースレッドがデーモンの場合、メインスレッドが終了すると終了します。メインスレッドは、キューを含むすべてのタスクが完了したときに終了しました。それは例外が発生したためにタスクが完了しなかったためにハングしていました。 – Mocking