线程和信号

信号属于进程资源,多个线程共享信号。

线程内可以调用pthread_sigmask

线程内可以调用signwait(signset,opno)来专门处理信号

   -----当前进程阻塞的信号集

   -----专门的线程来处理信号

   ------signwait检查signset,如果有未挂起或阻塞的信号,那么就返回并令这些信号阻塞。为什么要阻塞呢?就是防止处理信号的线程错过信号。

          当signwait返回前,会暂时在一个时间窗口内取消阻塞的信号集合,在时间窗口内会接受等待的信号到来。当信号到来时,signwait返回

          opno就是等待的信号值。返回前会再次恢复阻塞的信号集合。

     ------常在一个线程内循环调用sigwait,专用线程处理信号,把异步信号进行同步的处理。信号就不会打断其它线程的处理。

硬件故障相关的信号,会发回给产生故障的线程,其它信号发给任何一个线程

posted @ 2017-11-06 19:37  FromScratch  阅读(240)  评论(0编辑  收藏  举报