zoukankan      html  css  js  c++  java
  • 并发编程---守护进程

    守护进程

    守护进程的特点:

    • 其一:守护进程会在主进程代码执行结束后就终止
    • 其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemonic processes are not allowed to have children
    from multiprocessing import Process
    import time
    
    def task(name):
        print('%s is running' %name)
        time.sleep(2)
        # p = Process(target=task, args=('子进程1',))
        # p.start()
        # 验证守护进程内不能创建进程
    
    if __name__ == '__main__':
        '''
        守护进程会在主进程代码执行结束后终止
        '''
        p = Process(target=task,args=('子进程1',))
        p.daemon=True # 必须在start之前设置,父进程代码执行结束,p即终止运行
        p.start()
    
        p.join()
        print('')
    '''
    打印结果:
    子进程1 is running
    主
    '''

    守护进程练习题

    思考下列代码的执行结果有可能有哪些情况?为什么?

    from multiprocessing import Process
    
    import time
    def foo():
        print(123)
        time.sleep(1)
        print("end123")
    
    def bar():
        print(456)
        time.sleep(3)
        print("end456")
    
    if __name__ == '__main__':
        p1=Process(target=foo)
        p2=Process(target=bar)
    
        p1.daemon=True
        p1.start()
        p2.start()
        print("main-------") # 只要执行到这行代码p1进程就死掉了
    '''
    打印结果:
    main-------
    456
    end456
    如果计算机的性能好的话:
    123
    end123
    main-------
    456
    end456
    原因:设置为守护进程的子进程,父进程先结束的话,p1终止运行
    '''
  • 相关阅读:
    python-函数进阶
    SHELL wordpress.sh
    XFS: possible memory allocation deadlock in kmem_alloc (mode:0x2d0)
    Puppet install with nginx unicorn
    CentOS 6内核编译问题整理
    Openstack 本地yum源配置
    Openstack 本地yum源配置
    hpsa 0000:0a:00.0: out of memory
    openstack VNC安全问题
    CentOS下crash分析内核kdump文件方法
  • 原文地址:https://www.cnblogs.com/Mryang123/p/8893992.html
Copyright © 2011-2022 走看看