在Python多处理模块documentation中,我们可以阅读:
When a process exits, it attempts to terminate all of its daemonic child processes.
这到底是什么意思?
答案 0 :(得分:0)
找到一个forum thread来解释它:daemon
这个属性来自Threading
模块,当只剩下守护线程时,进程退出。
在进行多处理的情况下,主(父)进程将join
个非守护进程等待它们完成,而它将(尝试)终止守护进程。
例如,以下脚本将等待子进程结束:
import multiprocessing
import time
a = multiprocessing.Process(target=lambda: time.sleep(10))
a.start()
# Wait 10s...
以下脚本将立即终止:
import multiprocessing
import time
a = multiprocessing.Process(target=lambda: time.sleep(10), daemon=True)
a.start()
# Immediate exit