我有一些工作线程使用来自预填充输入队列的数据,并将结果放入另一个队列。
import queue
import threading
worker_count = 8
input_queue = queue.Queue()
output_queue = queue.Queue()
threads = []
for _ in range(worker_count):
thread = threading.Thread(target=perform_work, args=(input_queue, output_queue)
thread.daemon = True
thread.start()
threads.append(thread)
我正在主线程中处理结果,我想确保处理所有结果。
while True:
try:
result = output_queue.get(True, 0.1)
except queue.Empty:
pass
else:
process_result(result)
if not any([t.is_alive() for t in threads]) and not output_queue.empty():
# All results have been processed, stop.
break
.is_alive()
在这种情况下?或者有什么特别的理由
.join()
相反呢?
daemon = True
因为它使调试和终止程序更容易。