这里父子进程,为什么父进程一直在whie子进程还能杀死他呢。我理解的这里子进程不是sleep一下。让出了cup,然后父进程一直卡死在哪吗。如果哟不是这样。能麻烦给解释一下执行的流程吗
信号量处理
1.信号量是软中断,在系统层面中断调用层级比普通程序执行权限高
2.系统信号量也分层级,kill信号量也属于信号量级别最高的,发出kill信号量以后,系统其实是强制执行,基本是“斩立决+死亡讣告,遗嘱通知”,不会让你做其他事情。毕竟如果你下个kill进程,然后程序还继续处理甚至故意忽略kill信号,那么这个kill就没用了。所以操作系统设计者就的设计一个说斩就斩的玩意,不然服务器进程挂了,你还kill不掉他那不是个麻烦了
你对进程的理解完全是错的
想理解进程,你需要先学习有关计算机原理和操作系统的相关知识
windows是多用户多任务的操作系统,它天然是多进程多线程的
不管你的线程到底是死循环还是sleep,都不可能霸占cpu,cpu会分别执行每个线程一小段时间再把它们放回去等待,这叫分时复用
现在的cpu都是多核的了,但是需要执行的进程那么多,还是不可能有进程完全霸占某个核心,依然还是分时复用的没有变
而即使cpu非常空闲,它就是在一直执行某个进程,这跟它是否会被杀死也是完全没有一毛钱关系的
因为子进程并不是通知父进程让它自杀,而是通知了操作系统让操作系统杀死父进程,这跟父进程是否忙碌会不会收到信号没有一毛钱关系