本文主要是介绍僵尸进程的基础学习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、概念
僵尸进程指的是处于僵尸态的进程,这种进程无法进行调度,但其所占用的系统资源并未被释放。僵尸态是进程生命周期的必经阶段,是无法避免的,但为了节约系统资源,应尽快清理腾出僵尸态进程所占用的内存资源。
2、产生的原因
当一个程序的代码流程从main函数返回后,进程就结束了,但此时不能立即退出,因为还需要向其父进程汇报执行的结果和死亡的原因,又因为已无法被调度,因此进程只能以一种被动的姿态躺倒,等待其创建者(父进程)前来获取其执行结果和死亡原因。
通过下列程序可查看僵尸进程:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>int main(int argc,char *argv[])
{pid_t pid=fork();if (pid==0){printf("子进程\n");//子进程退出变僵尸return 0;}else{//父进程不退出pause();}return 0;
}
结果:
使用命令:ps ajx 查看进程状态
这篇关于僵尸进程的基础学习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!