Python 禁用进程上的守护进程属性的缺点?

Python 禁用进程上的守护进程属性的缺点?,python,multiprocessing,Python,Multiprocessing,在问题“”中,演示了如何禁用进程的守护进程属性: class NoDaemonProcess(multiprocessing.Process): # make 'daemon' attribute always return False def _get_daemon(self): return False def _set_daemon(self, value): pass daemon = property(_get_daemo

在问题“”中,演示了如何禁用进程的守护进程属性:

class NoDaemonProcess(multiprocessing.Process):
    # make 'daemon' attribute always return False
    def _get_daemon(self):
        return False
    def _set_daemon(self, value):
        pass
    daemon = property(_get_daemon, _set_daemon)

# We sub-class multiprocessing.pool.Pool instead of multiprocessing.Pool
# because the latter is only a wrapper function, not a proper class.
class MyPool(multiprocessing.pool.Pool):
    Process = NoDaemonProcess
这允许池中的进程启动自己的子进程,如原始问题中所述

作为启动子流程的灵活性的交换,需要支付哪些成本?如果没有成本,标准池可能会使用非守护进程


注意:这个问题是基于一个未解决的高投票率评论,所以我决定将其转换为一个问题。

如果父进程终止,守护进程将被终止。非守护进程将阻止其父进程终止,直到它也终止

所以,如果您不介意子进程阻塞其父进程,您可以随意使用非守护进程