书“高级编程在Unix环境”说:信号队列和信号屏蔽
内核,除非他们支持实时扩展到POSIX.1
如果不排队信号被阻塞的信号不止一次产生(产生的阻塞信号是不同类型的),它被设置在信号掩码上。然后,在其他信号之前传送与当前进程状态相关的信号。
这里,信号队列和信号掩码有什么不同? 如果为每种不同类型设置信号掩码,这意味着内核知道什么信号正在等待(因此,我认为队列和掩码相同)。
而且,传送信号一次?当同一类型的信号被多次传送时,是不是这样?另外,大多数UNIX系统不排队信号意味着只有1个信号掩码位可以在清除掩码上设置?那么,如果在这个过程中阻塞了不同类型的许多信号会发生什么?什么信号没有设置?
没有队列。信号有待处理或未处理。一点。如果有一个队列,可以在其中放入5个SIGINT实例,这与6或17个实例不同。 –
只能打开一个掩码位? –
不,可以打开几个位。 –