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终止运行
    '''
  • 相关阅读:
    C++ Websites
    C++ smart pointer
    Use of ‘const’ in Functions Return Values
    Meaning of “const” last in a C++ method declaration?
    为什么不要使用"using namespace XXX"
    android.os.Handler
    Windows下Anaconda的安装和简单使用
    matlab GPU 操作
    matlab 在柱状图上 显示数字
    How to fix apt-get GPG error NO_PUBKEY Ubuntu 14
  • 原文地址:https://www.cnblogs.com/Mryang123/p/8893992.html
Copyright © 2011-2022 走看看