进程与多进程

2019-02-05  本文已影响1人  遇明不散

多任务编程

可以有效的利用计算机资源,同时执行多个任务

进程

定义

进程就是程序在计算机中一次执行的过程

程序与进程的区别

程序是一个静态文件的描述,不占计算机的系统资源
进程是一个动态的过程,占有CPU内存等资源,有一定的生命周期
同一个程序的不同执行过程即为不同的进程

什么决定了进程的创建

进程如何占有CPU

进程在运行过程中的形态和附带内容

PCB(进程控制块)

在Linux和Unix操作系统中,进程创建后会在内存中开辟一块空间存放进程的相关信息,这个空间称为PCB。

进程的优先级

优先级往往决定了一个进程的执行权限和占有系统资源的优先级

父子进程

在系统中除了初始化进行之外每个进程都是由父进程创建的,每个进程有一个唯一的父进程,可能有多个子进程
os模块:

os.fork()

进程相关函数

僵尸进程

定义:子进程先于父进程退出,父进程没有对子进程的退出做出相应的处理,此时子进程就会变成僵尸进程
影响:进程退出后,仍有部分信息残留在内存中占用空间,大量的僵尸进程会影响系统运行,所以应该尽量避免僵尸进程的产生。

处理僵尸进程的方法

孤儿进程

定义:父进程先于子进程退出,此时子进程就会变为孤儿进程
影响:当一个进程变为孤儿进程,系统会自动的使用一个进程成为孤儿进程的父进程。当孤儿进程退出时,该系统会自动回收孤儿,使它不会成为僵尸。所以孤儿进程对系统资源没什么影响。

守护进程

多进程

更方便高效的进程创建方法

创建进程的步骤

进程的回收

创建子进程:

Process()

多进程的优缺点

优点

缺点

进程池

什么是进程池

在利用Python进行系统管理的时候,特别是同时操作多个文件目录,或者远程控制多台主机,并行操作可以节约大量的时间。当被操作对象数目不大时,可以直接利用multiprocessing中的Process动态成生多个进程,十几个还好,但如果是上百个,上千个目标,手动的去限制进程数量却又太过繁琐,此时可以发挥进程池的功效。
进程池可以提供指定数量的进程供用户调用,当有新的请求提交到pool中时,如果池还没有满,那么就会创建一个新的进程用来执行该请求;但如果池中的进程数已经达到规定最大值,那么该请求就会等待,直到池中有进程结束,才会创建新的进程来它。

进程池的创建

进程池的具体操作

创建自己的进程类

上一篇下一篇

猜你喜欢

热点阅读