Linux--实现父进程非阻塞等待子进程的while循环

代码:

cpp 复制代码
int quit = 0;
while (!quit)
{
	//1,等待成功&&子进程退出
	quit = 1;


	//2.等待成功&&子进程并未退出
    //执行处理其它任务
    
	//3.等待失败
	quit = 1;
}

阻塞等待不需要while循环,他就是只判断一次。

非阻塞判断要多次判断,因为子进程等待成功&&未退出时,父进程要跑去执行其它任务。过一段时间又要跑回来判断子进程的退出情况。

如果等待成功&&子进程未退出,那么父进程就可以去干其它的事情,过段时间再来判断是否等待成功&&子进程退出

如果是等待成功&&子进程退出和等待失败,那么就父进程没有wait等待子进程的必要了,就可以退出while等待了

退出方式就是令quit为一个非0的数,那么while(!quit)判断时,就为假。即跳出循环,不再等待

相关推荐
哇哈哈20218 小时前
信号量和信号
linux·c++
不是二师兄的八戒8 小时前
Linux服务器挂载OSS存储的完整实践指南
linux·运维·服务器
一个人旅程~9 小时前
如何用命令行把win10/win11设置为长期暂停更新?
linux·windows·经验分享·电脑
2302_799525749 小时前
PCI、PCIe 和 NVLink
linux
~远在太平洋~10 小时前
Linux 基础命令
linux·服务器·数据库
Gofarlic_oms110 小时前
避免Kisssoft高级分析模块过度采购的科学评估方法
大数据·linux·运维·人工智能·matlab
~远在太平洋~10 小时前
Debian系统如何删除多余的kernel
linux·网络·debian
linux kernel11 小时前
第十一部分(下):进程通信
linux·服务器
2401_8639054411 小时前
haproxy
linux
皮皮哎哟11 小时前
Linux多线程通信:告别数据混乱
linux·互斥锁·进程间通信·信号量