僵尸进程、孤儿进程和守护进程
本章节了解即可
僵尸进程
含义:
子进程死后,还会有一些资源占用(进程号,运行状态,运行时间等),等待父进程通过系统调用回收。除了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('纣王驾崩了')