子进程的异步等待方式

来源:互联网 发布:国产羽绒服 知乎 编辑:程序博客网 时间:2024/05/24 05:57

信号:Linux中的信号是一种时间通知机制,告诉某事件发生,并说明如何发生。
利用kill -l 指令可以查看信号,其中1——31为普通信号,34——64为实时信号。

等待分为阻塞式等待和非阻塞式等待,我们用非阻塞式等待实现异步。
一个子进程退出时,子进程会主动向父进程发送SIGCHLD信号,父进程一般忽略。我们队SIGCHLD信号进行捕捉。

下面验证子进程退出时给父进程发送信号
代码:
这里写图片描述

子进程先睡眠5秒,父进程先运行,5秒后子进程运行,退出后给父进程发送信号,父进程接收子进程发送的退出信号,继续运行。

运行结果:
这里写图片描述

父进程等待子进程:
这里写图片描述

运行结果:

这里写图片描述

运行后等待5秒,开始输出子进程的运行结果,然后父进程运行,父进程等待子进程运行。

原创粉丝点击