首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >python报错记录 AssertionError: daemonic processes are not allowed to have children

python报错记录 AssertionError: daemonic processes are not allowed to have children

原创
作者头像
大大刺猬
发布2022-06-30 16:30:33
发布2022-06-30 16:30:33
4.2K0
举报
文章被收录于专栏:大大刺猬大大刺猬

环境

Python 3.6.8

报错

代码语言:python
复制
Process Process-2:
Traceback (most recent call last):
  File "/usr/lib64/python3.6/multiprocessing/process.py", line 258, in _bootstrap
    self.run()
  File "/usr/lib64/python3.6/multiprocessing/process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "main.py", line 75, in mf_insp
    with Manager() as manager:
  File "/usr/lib64/python3.6/multiprocessing/context.py", line 56, in Manager
    m.start()
  File "/usr/lib64/python3.6/multiprocessing/managers.py", line 513, in start
    self._process.start()
  File "/usr/lib64/python3.6/multiprocessing/process.py", line 103, in start
    'daemonic processes are not allowed to have children'
AssertionError: daemonic processes are not allowed to have children

报错原因

子进程 又 创建 子进程, 且使用了daemon=True

演示代码

代码语言:python
复制
from multiprocessing import Process
import os

def f():
        print("F: {pid}".format(pid=os.getpid()))
        p = Process(target=c,)
        p.start()
        p.join()

def c():
        print("C: {pid}".format(pid=os.getpid()))

if __name__ == '__main__':
        thread_list={}
        for i in range(4):
                thread_list[i] = Process(target=f, daemon=True)
        for i in range(4):
                thread_list[i].start()
        for i in range(4):
                thread_list[i].join()

测试结果

/ 表示未设置相关参数

父进程

子进程

效果

/

daemon=True

正常

daemon=True

daemon=True

报错

daemon=True

/

报错

/

/

正常

解决办法

都去掉daemon=True就行, 也可以按上面的测试结果设置..

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境
  • 报错
  • 报错原因
  • 演示代码
  • 测试结果
  • 解决办法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档