“Unix环境中的高级编程”一书说:
内核不对信号排队,除非它们支持POSIX.1的实时扩展。
如果一个阻塞信号被产生不止一次(生成的阻塞信号是不同的类型),它就设置在信号掩码上。然后,在其他信号之前传递与处理的当前状态相关的信号。
在这里,信号队列和信号掩码之间有区别吗?如果为每种不同类型设置了信号掩码,这意味着内核知道等待什么信号。(正因为如此,我认为队列和掩码是相同的。)
那么,发送一次信号是什么情况呢?当同一类型的信号不止一次传送时,会不会是这样?
另外,大多数UNIX系统,不排队信号意味着只有一个信号掩码位可以设置在透明掩码上?那么,如果在这个过程中阻塞了不同类型的许多信号,会发生什么呢?什么信号没有设定?
https://stackoverflow.com/questions/35847773
复制相似问题