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系统中是没有的 

  • 相关阅读:
    oracle函数 TO_DATE(X[,c2[,c3]])
    oracle函数 TO_CHAR(x[[,c2],C3])
    oracle函数 RAWTOHEX(c1)
    oracle HEXTORAW(c1)
    oracle函数 CONVERT(c1,set1,set2)
    oracle函数 ROWIDTOCHAR(rowid)
    oracle函数 chartorowid(c1)
    创建可按比例调整的布局的 Windows 窗体
    A Byte of Python(简明Python教程) for Python 3.0 下载
    使用异步事件在后台进行计算并报告进度
  • 原文地址:https://www.cnblogs.com/baby12138/p/10461613.html
Copyright © 2011-2022 走看看