zoukankan      html  css  js  c++  java
  • 进程

    进程简单来说就是一个正在运行的程序

    多进程就是在一个任务中开启多个子进程,让这些子进程同时运行指定的代码,

    进程之间的数据是完全隔离的

    from multiprocessing import Process
    def func():
        print(111)
    if __name__ == '__main__':
        p = Process(target=func)
        p.start()
        p.join()
        print('子进程已经完全运行完毕')

    上面是一个关于子进程如何开启的代码

    from multiprocessing import Process
    def func():
        global a
        a = 2
    if __name__ == '__main__':
        a = 1
        p = Process(target=func)
        p.start()
        p.join()
        print(a)
        print('子进程已经完全运行完毕')


    结果:
    1
    子进程已经完全运行完毕

    上图是一个简单的进程之间数据不能共享的列子,因为p执行了join方法,所以join后面的代码都要等到子进程代码完全执行完毕之后再接着执行join后面的代码,但是此时使用了global更改了变量a,但是a打印出来的值还是1,说明进程之间数据是完全隔离的

    守护进程

    import time
    from multiprocessing import Process
    def func():
        time.sleep(3)
        print('子进程执行结束')
    
    def func1():
        print('守护进程执行结束 ')
    if __name__ == '__main__':
        a = 1
        p = Process(target=func)
        p1 = Process(target=func1)
        p1.daemon = True
        p.start()
        p1.start()
        print('子进程已经完全运行完毕')
    结果:
    子进程已经完全运行完毕
    子进程执行结束

    上图的守护进程是p1,当主进程里面的代码运行完毕了,守护进程里面的代码就不执行了

    僵尸进程和孤儿进程只会出现在Linux系统中 Windows系统中是没有的 

  • 相关阅读:
    全局对象
    公用属性与原型链
    内存图
    JS中数据类型的转换
    for in 遍历
    JS里的数据类型
    Collect~Something else
    Spring Batch学习笔记(一)
    C#之WinForm设置控件居中
    C#之使用AutoUpdater自动更新客户端
  • 原文地址:https://www.cnblogs.com/baby12138/p/10461613.html
Copyright © 2011-2022 走看看