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终止运行
    '''
  • 相关阅读:
    【产品分析】数据中台
    【设计】设计规范
    【产品分析】用户行为分析套路
    【产品复盘】谷歌Chrome是如何蚕食互联网的?
    【设计】图表设计
    command
    解决win7系统远程桌面 server 2003 卡的问题
    sqlmap遇到url重写的示例
    ASP中可能出现的一种包含漏洞(Server.execute)
    绕过杀毒软件抓取windows密码
  • 原文地址:https://www.cnblogs.com/Mryang123/p/8893992.html
Copyright © 2011-2022 走看看