0
在Python Queue documentation,有下面的例子:的Python:正確終止工作線程
def worker():
while True:
item = q.get()
do_work(item)
q.task_done()
q = Queue()
for i in range(num_worker_threads):
t = Thread(target=worker)
t.daemon = True
t.start()
for item in source():
q.put(item)
q.join() # block until all tasks are done
我只是想知道,如果這是正確的做法,因爲它似乎是工作線程不會終止。我認爲他們最終會成爲殭屍。 Python文檔忽略了這個問題嗎?謝謝。
上面的示例使用了多線程,但您在此討論多處理。守護進程線程即使退出,也不會退出,這與守護進程不同。 –
@JFreebird,我認爲同樣的事情適用於我從[docs](https://docs.python.org/3/library/threading.html#thread-objects)可以看出的線索。如果只剩下守護線程,它們將全部被突然終止。所以我所描述的兩種方法都應該是有效的......至少,我認爲。 –