Python多进程编程原理、孤儿进程和僵尸进程的定义、os.getpid,os._exit方法

Python多进程编程原理、孤儿进程和僵尸进程的定义、os.getpid,os._exit方法

多进程编程

import os

pid = os.fork()

功能:创建新的进程

参数:无

返回值:失败返回一个负数

成功:在原有进程中返回新的进程的PID号

  在新的进程中返回0

子进程会复制父进程全部代码段,包括fork之前产生的内存空间

子进程从fork的下一句开始执行,与父进程互不干扰

父子进程的执行顺序是不一定的,父子进程共用一个终端显示

父子进程通常会根据fork返回值的差异选择执行不同的代码。所以if结构几乎是fork的固定搭配

父子进程空间独立,操作的都是本空间的内容,互不影响

子进程也有自己的特性,比如PID号,PCB,命令集等

进程相关函数

os.getpid():获取当前进程的进程号,返回进程号

os.getppid():获取当前进程父进程的PID号,返回进程号

os._exit(进程的退出状态码):进程退出,状态码可以自己定

sys.exit([进程的退出状态码,默认是0]):进程退出,数字表示退出状态,字符串表示退出时打印的内容,可以通过异常捕获来阻止这个函数的退出

孤儿进程

父进程先于子进程退出,此时子进程就称为孤儿进程。

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

僵尸进程

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

僵尸进程会存留少量PCB信息在内存中,大量的僵尸进程会消耗系统资源,应该避免僵尸进程的产生


最后编辑于:2019/10/27作者: 牛逼PHP

发表评论