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终止运行
    '''
  • 相关阅读:
    第四十三课:jQuery插件化
    js模块化开发
    第四十二课:基于CSS的动画引擎
    第四十一课:CSS3 animation详解
    第四十课:CSS3 transition详解
    第三十九课:requestAnimationFrame详解
    几种排序
    图与搜索
    数组
    链表
  • 原文地址:https://www.cnblogs.com/Mryang123/p/8893992.html
Copyright © 2011-2022 走看看