python中的进程详解

什么是进程

定义:程序在计算机中的一次运行过程

程序:是一个可执行文件,是静态的占用磁盘空间,不占用计算机的运行资源

进程:是一个动态过程的描述,占用计算机的资源,有一定的生命周期

注意:同一个程序的不同运行过程是不同的进程,占用资源和生命周期不一样

进程的特征

1.进程之间的运行互不影响,独立运行
2.进程是操作系统分配资源的最小单位
3.每个进程独立,各自占用一定的虚拟内存

进程创建的流程

1.用户启动一个程序或者调用一个接口,发起创建进程
2.操作系统接收用户的请求,开始创建进程
3.操作系统确定进程的状态,为进程分配资源和空间
4.操作系统将创建好的进程分配给程序

multiprocessing 模块创建进程

使用multiprocessing中的Process类创建进程:
p = Process(target, args, kwargs, ')
其中参数,target为子进程的方法名,arg为给target函数按照位置传参,kwargs为给target函数按照字典传参。简单例子如下:

from multiprocessing import Process
from time import sleep

def worker(sec, name):
    for i in range(3):
        sleep(sec)
        print("I'm %s" % name)
        print("I'm working")

if __name__ == '__main__':
    p = Process(target=worker, args=(2,), kwargs={"name": "lee"}, name='Worker')
    p.start()
    print("process name:", p.name) #进程名称,自己可以改
    print("process PID:", p.pid)	#进程id
    print("process is alive:", p.is_alive())	#进程状态
    p.join(3)

运行结果

process name: Worker
process PID: 10956
process is alive: True
I'm lee
I'm working
I'm lee
I'm working
I'm lee
I'm working
##其中worker方法为子进程,if条件语句下为父进程。
##其中子进程并不单单只是执行worker方法中的代码,而是将if语句之前的代码全部运行。父进程执行的是除worker方法外的所有代码。

孤儿进程和僵尸进程

孤儿进程:

        定义:父进程先于子进程退出,此时子进程就成为孤儿进程

        *孤儿进程会被操作系统指定的进程收养,系统进程就成为孤儿进程的新的父进程

 僵尸进程:

        定义:子进程先于父进程退出,但是父进程没有处理子进程的退出状态,此时子进程就会成为僵尸进程

        *僵尸进程会存留少量PCB信息在内存中,大量的僵尸进程会消耗系统资源,应该避免僵尸进程的产生
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章