一、什么是进程

进程的概念

  顾名思义进程就是指一个过程,所以一个程序运行的过程即一个进程  进程只是一个抽象的概念

二、进程与程序的区别

  程序是一堆代码,程序运行的过程是进程,程序是实际存在的

三、子进程

  在一个进程中产生了一个新的进程,那么产生的进程为原来进程的子进程,一个父进程可以产生多个子进程,产生子进程中windows中是将父进程复制但不一定一样,uninx中是直接复制,二者是独立的,都有自己的内存空间,相互不干扰




子进程 defunct_操作系统

子进程 defunct_python_02

from multiprocessing import Process
import time,os
x=1000
def play(name):
    global x
    x=0
    print('%s:start.......'%name)
    time.sleep(3)
    print('%s:stop.......'%x)

if __name__=='__main__':
    p= Process(target=play,args=('sxx',))
    p.start()
    print('55555555555')


子进程的生成


四、僵尸进程  

  在一个进程中可以通过调用python中multiprocessing模块下的类Process来生成一个对象对象可以直接调用Process下面.start方法来向操作系统发送一个开启进程的请求,此时的两个进程其实就是两个隔离的事物,父进程的运行并不会受到子进程的干扰他会继续执行自己的进程,只是在父进程结束后会等待他的诸多子进程都结束才会结束,这是因为进程在运行结束后内存会制动清除.那么,父进程想获取子进程的一些信息怎么办?必须有一种机制在子进程结束也能保存一些信息,这就要需要提到僵尸进程,僵尸进程是什么,其实僵尸进程就是子进程在结束后还保留着进程的一些信息,例如运行状态和pid。在操作系统清理内存时,这些信息还保存在内存中,如果不等子进程在执行完后,父进程直接结束,那么内存中的僵尸进程一直存在,进程数是有限的,当超过一定数量会影响其他进程其实父进程等待的过程是为了在子进程结束后将其的信息从内存清除。

五、孤儿进程

  在uninx系统中,即使父进程在子进程前面关闭也没问题,因为uninx系统有个总进程INIP,父进程关闭了,会有总进程来清理子进程的内存