广告位

僵死线程(僵死进程)

大家好,小城来为大家解答以上问题。僵死线程,僵死进程很多人还不知道,现在让我们一起来看看吧!

大家好,小城来为大家解答以上问题。僵死线程,僵死进程很多人还不知道,现在让我们一起来看看吧!

1、为了后续讲解,我们编写一个程序例子。程序中接收用户输入,并创建子进程处理用户输入。

2、程序示例如下:

3、运行程序,再输入数据并获取处理结果之后,我们查看系统中进程,发现产生了僵尸进程。

4、僵尸进程产生的原因是因为子进程已经结束运行,但是父进程没有对其进行回收。

5、第一种方式:父进程创建了子进程之后,等待回收子进程资源。

6、优化程序后,我们再次执行并查看系统中进程,没有僵尸进程了。

7、父进程等待回收子进程资源时,父进程此时并没有充分利用起来,影响系统效率。

8、在子进程结束后,父进程会收到SIGCHLD信号,通过在父进程中设置信号处理函数,收到SIGCHLD信号后再执行回收操作。这样提高系统效率。

9、如果程序中不关心子进程是否结束,那么对于SIGCHLD信号,父进程设置为忽略。那么当子进程退出后,内核会将该进程回收。所以,忽略SIGCHLD信号也是一种处理方法。

10、最后,还有一种处理方法。父进程创建子进程并等待子进程退出,在子进程处理中,创建孙进程,子进程马上结束。

11、这样父进程等待子进程并不需要太久,而孙进程的父进程已经结束,孙进程的父进程将设置为init进程。孙进程结束后,由init系统进程对其进行回收。

本文到此结束,希望对大家有所帮助。

本文来自网络,不代表本站立场。转载请注明出处: https://www.djladysyren.com/a-727366.html
1
上一篇春节鞭炮简笔画图片大全(春节鞭炮简笔画)
下一篇 工作疲劳时适合听的歌(工作疲劳)

为您推荐

联系我们

联系我们

186 2726 9593

在线咨询: QQ交谈

邮箱: 120632399@qq.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部