推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
jibabi
V2EX  ›  Python

求助 Python multiprocessing 守护进程为什么不允许有子进程?

  •  
  •   jibabi · Jun 20, 2019 · 5443 views
    This topic created in 2653 days ago, the information mentioned may be changed or developed.
    本人代码如下:

    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 replies  •  2019-07-18 17:36:59 +08:00
    liuguichao
        1
    liuguichao  
       Jul 3, 2019
    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.
    wuwukai007
        2
    wuwukai007  
       Jul 18, 2019
    设置环境变量 export PYTHONOPTIMIZE=1

    ldconfig
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   983 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:26 · PVG 02:26 · LAX 11:26 · JFK 14:26
    ♥ Do have faith in what you're doing.