僵尸进程
来源:互联网 发布:本地电子书阅读软件 编辑:程序博客网 时间:2024/05/04 03:15
僵尸进程就是父进程fork之后并没有wait子进程。在子进程退出的时候,内核释放该进程所有的资源,比如文件描述符,内存,等等,但是依然为该进程保留一定的信息,只有该进程的父进程wait之后才会释放掉这些保留的信息。如果父进程没有wait,那么子进程就变成了僵尸进程。在高并发的服务器中,僵尸进程会有很大的危害。如果僵尸进程过多,那么就会有大量的进程号被僵尸进程占用,但是系统所能使用的进程是有限的。如果僵尸进程多到连新进程的进程号都没法提供,那么服务器就会一直处于拒绝状态了。
但是高并发服务器的父进程肯定会fork许多子进程,而且有可能父进程不需要知道任何子进程的结束信息,如果还wait每个子进程的话,肯定会造成资源的大量良妃。针对这种情况,有一个非常简单却非常有效的办法。当子进程exit()的时候,内核会向父进程发送一个SIGCHLD信号。将这个信号的处理方式设置为SIG_IGN,那么就可以让父进程忽略子进程发送的SIGCHLD信号了。
<script type="text/javascript"><!--google_ad_client = "ca-pub-1944176156128447";/* cnblogs 首页横幅 */google_ad_slot = "5419468456";google_ad_width = 728;google_ad_height = 90;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- 僵尸进程
- 僵尸进程
- 僵尸进程
- 僵尸进程
- 僵尸进程
- 僵尸进程
- 僵尸进程
- 僵尸进程
- 僵尸进程
- 僵尸进程
- 僵尸进程
- 僵尸进程
- 僵尸进程
- 僵尸进程
- 僵尸进程
- 僵尸进程
- 僵尸进程
- 僵尸进程
- struts2.1.8的配置问题
- 杭电acm1061
- [Python] 多线程编程
- MFC的使用技巧 (如何删除一个类)
- shell内部命令
- 僵尸进程
- 静态vector容器成员变量的定义和初始化
- 关于字符串
- 深入浅出REST
- 黑马程序员-java学习之异常
- 10422 - Knights in FEN(bfs+map判重)
- 线程私有数据的介绍与使用(TSD)
- unpV1的源码的使用方法
- 微软的 DAO,RDO,OLE DB, ADO,ADO.NET