僵尸进程、孤儿进程和守护进程

僵尸进程、孤儿进程和守护进程

本章节了解即可

僵尸进程


含义:

​ 子进程死后,还会有一些资源占用(进程号,运行状态,运行时间等),等待父进程通过系统调用回收。除了init进程之外,所有的进程最终都会步入僵尸进程

危害:

  • 子进程推出之后,父进程没有及时处理,僵尸进程就会一直占用计算机资源
  • 如果产生了大量僵尸进程,资源过度占用,系统可能没有可用的进程号,导致不能产生新的进程

孤儿进程


含义:

​ 子进程处于存活状态,而父进程意外死亡,这就意味着没有进程回收子进程以及其所占用的资源,危害不大。不过操作系统会开设一个“孤儿院”(init进程), 用来管理孤儿进程,回收收关资源

守护进程


随着主进程的状态而改变自身状态的进程成为守护进程。主进程活着,守护进程活着;主进程死了,守护进程也会跟着死。就像流氓软件的开机自启,操作系统启动了,流氓软件也会跟着启动,操作系统关机了,流氓软件也跟着关闭。

创建守护进程

使用``p.daemon = True`将进程p设置为守护进程。苏妲己作为一个妃嫔,在纣王驾崩时会殉葬,所以主进程死了,子进程也跟着死。

from multiprocessing import Process
import time
import os


def task(name):
    print(f'{name}还活着')
    time.sleep(3)
    print(f'{name}死了')


if __name__ == '__main__':
    p = Process(target=task, args=('苏妲己', ))
    p.daemon = True
    p.start()
    print('纣王驾崩了')

image-20230226152321510

你可能感兴趣的:(#并发编程,Python高级篇,服务器,运维)