阅读信号手稿时,我看到了信号表,看到有两个为 usr SIGUSR1 和 SIGUSR2 定义的信号。 两者之间有什么区别吗? 如果是这样,我应该什么时候选择使用一个而不是另一个? 如果没有区别,为什么两个信号服务于相同的目的?
最佳答案
您有两个信号可以满足您自己的需要。保证系统永远不会将它们交付给您的流程,因此您可以在它们上放置任何您想要的语义。为什么是两个?纯粹是任意的;只有一个肯定会很吝啬,所以他们给了我们两个,但他们本可以给更多。这是基于信号的通信的任意自由度。
我认为大多数时候这就足够了。我个人从来没有同时使用超过两个用户定义的...例如,使用这样的信号来警告正在执行一些消耗任务的服务器一些特殊的事情是“紧急”做的:读取一些东西通信 channel ,停止当前任务等。如果你需要两个以上的用户定义信号,这可能意味着你做了一个糟糕的设计并且过度使用它们。请记住,使用捕获信号会在您自己的代码中引起一些并发,这会对它的设计产生严重影响。
关于c - SIGUSR1 和 SIGUSR2 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27403641/