来谈谈进程里的僵尸和孤儿
-
孤儿进程:父进程先于子进程退出,此时子进程就被成为孤儿进程。
特点:孤儿进程会被系统进程收养,此时系统进程就变成了孤儿进程的父进程,孤儿进程退出,该进程自动退出。
-
僵尸进程:子进程先于父进程退出,父进程又没有处理子进程的退出状态,此时子进程就会成为僵尸进程。
特点:僵尸进程虽然结束,但是会残留部分进程信息在内存中,大量的僵尸进程会浪费系统的内存资源。
如何避免僵尸进程:
1. 使用 join() 回收
2. 在父进程中使用 signal() 方法回收
from signal import *
signal(SIGCHLD,SIG_IGN)