python多重处理中的守护进程的目的是什么?

时间:2019-07-09 17:37:37

标签: python python-multiprocessing

在Python多处理模块documentation中,我们可以阅读:

When a process exits, it attempts to terminate all of its daemonic child processes.

这到底是什么意思?

1 个答案:

答案 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