信号排队在C
发布时间:2020-12-16 05:41:12 所属栏目:百科 来源:网络整理
导读:我在 Linux下有一个简单的程序,它会在一个周期内向其子进程发送SIGUSR1信号.但是当我发送例如有时发生10个信号,孩子只收到其中3个信号.最后发送的信号始终为SIGUSR2,每次都接收到. 信号是否排队,或者当进程没有处理之前,它被简单地覆盖?有没有办法我可以在
我在
Linux下有一个简单的程序,它会在一个周期内向其子进程发送SIGUSR1信号.但是当我发送例如有时发生10个信号,孩子只收到其中3个信号.最后发送的信号始终为SIGUSR2,每次都接收到.
信号是否排队,或者当进程没有处理之前,它被简单地覆盖?有没有办法我可以在队列中发送信号? 解决方法
会发生什么事情如下:
>接收到第一个信号,即SIGUSR1,处理程序被调用并正在运行 一旦信号处理程序用信号nr1完成,它将处理信号nr2,然后信号处理程序将处理SIGUSR2. 基本上,相同类型的待处理信号不排队,而是丢弃.而不是,没有简单的方式“突发”发送信号.人们总是假定可以丢弃几个信号,并试图让处理者做清洁工作,并找出要做的事情(比如收获孩子,如果所有孩子同时死亡). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |