程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了C中的信号排队大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决C中的信号排队?

开发过程中遇到C中的信号排队的问题如何解决?下面主要结合日常开发的经验,给出你关于C中的信号排队的解决方法建议,希望对你解决C中的信号排队有所启发或帮助;

发生了以下情况:

  1. 收到的第一个信号,即SIGUSR1,处理程序被调用并正在运行
  2. 接收到第二个信号,因为来自nr1的处理程序仍在运行,所以信号nr2处于挂起状态并被阻止。
  3. 收到第三个信号,由于来自nr1的处理程序仍在运行,因此信号3被丢弃。
  4. 丢弃与信号nr1相同类型的第四,第五等信号。

使用信号nr1完成信号处理程序后,它将处理信号nr2,然后信号处理程序将处理SIGUSR2。

基本上,相同类型的未决信号不会排队,而是会被丢弃。不,没有简单的方法可以“爆发”这种方式发送信号。人们总是假设可能会丢弃多个信号,并试图让处理程序执行清理工作并找出要做什么(例如收养孩子,如果所有孩子同时死亡)。

解决方法

我在Linux下有一个简单的程序,该程序可以周期性地将SIGUSR1信号发送到其子进程。但是当我发送例如10个信号时,有时会发生,孩子只接收了3个信号。最后发送的信号始终是SIGUSR2,并且每次都会接收到。

信号是否在排队,或者当进程未处理前一个信号时,信号就会被覆盖?有什么方法可以在队列中发送信号吗?

大佬总结

以上是大佬教程为你收集整理的C中的信号排队全部内容,希望文章能够帮你解决C中的信号排队所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: