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)可以看出的线索。如果只剩下守护线程,它们将全部被突然终止。所以我所描述的两种方法都应该是有效的......至少,我认为。 –