这是一个创建于 1949 天前的主题,其中的信息可能已经有所发展或是发生改变。
本人代码如下:
import multiprocessing
import time
def process_a():
for _ in range(10):
print("process a")
time.sleep(1)
def process_b():
print("process b")
ps = []
for _ in range(3):
p = multiprocessing.Process(target=process_a)
p.daemon = True
p.start()
ps.append(p)
for i in ps:
i.join()
if __name__ == '__main__':
p = multiprocessing.Process(target=process_b)
p.daemon = True
p.start()
p.join()
运行报错:AssertionError: daemonic processes are not allowed to have children
想问一下 multiprocessing 是出于什么原因,决定守护进程不能再创建子进程?谢谢
2 条回复 • 2019-07-18 17:36:59 +08:00
|
|
1
liuguichao 2019-07-03 09:42:03 +08:00
Note that a daemonic process is not allowed to create child processes. Otherwise a daemonic process would leave its children orphaned if it gets terminated when its parent process exits. Additionally, these are not Unix daemons or services, they are normal processes that will be terminated (and not joined) if non-daemonic processes have exited.
|
|
|
2
wuwukai007 2019-07-18 17:36:59 +08:00
设置环境变量 export PYTHONOPTIMIZE=1
ldconfig
|