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终止运行
    '''
  • 相关阅读:
    影响cpu性能的因素有哪些?
    linux系统中 SElinux安全子系统
    linux 系统中个人用户主页功能
    理解 Segmentation fault
    VI高级命令集锦
    How to be a Star 怎样成为明星?
    名词解释:DEADBEEF
    Unix还能走多远?
    Awk 实例,第 1 部分
    77年出生的朋友,你们过的还好吗?
  • 原文地址:https://www.cnblogs.com/Mryang123/p/8893992.html
Copyright © 2011-2022 走看看