当前位置: 技术问答>linux和unix
信号与线程的问题
来源: 互联网 发布时间:2015-12-04
本文导语: A. 1个SIGIO信号来,3个线程都可以捕捉,2个线程作忽略信号的操作,1个线程调用信号处理程序. B. 1个SIGIO信号来,3个线程中的两个阻塞,一个调用信号处理程序. 请问:A,B哪中方式适合于在三个线程中对SIGIO信号的处理? 另...
A. 1个SIGIO信号来,3个线程都可以捕捉,2个线程作忽略信号的操作,1个线程调用信号处理程序.
B. 1个SIGIO信号来,3个线程中的两个阻塞,一个调用信号处理程序.
请问:A,B哪中方式适合于在三个线程中对SIGIO信号的处理?
另外:用pthread_sigmask阻塞一个信号,是把一个线程给挂起了么?
谢谢
B. 1个SIGIO信号来,3个线程中的两个阻塞,一个调用信号处理程序.
请问:A,B哪中方式适合于在三个线程中对SIGIO信号的处理?
另外:用pthread_sigmask阻塞一个信号,是把一个线程给挂起了么?
谢谢
|
比较而言B要好一些,因为A的结果不可预知,信号处理函数可能不会被调用.
进程接收到一个信号后,是由线程库来决定哪个具体的线程来接收信号,如果库发县某个线程设置了mask将不会将信号递交到该线程。
进程接收到一个信号后,是由线程库来决定哪个具体的线程来接收信号,如果库发县某个线程设置了mask将不会将信号递交到该线程。