2. 每個線程均有自己的信號屏蔽字,可以使用sigprocmask函數來屏蔽某個線程對該信號的響應處理,僅留下需要處理該信號的線程來處理指定的信號。
3. 對某個信號處理函數,以程序執行時最後壹次註冊的處理函數為準,即在所有的線程裏,同壹個信號在任何線程裏對該信號的處理壹定相同
4. 可以使用pthread_kill對指定的線程發送信號
APUE的說法:每個線程都有自己的信號屏蔽字,但是信號的處理是進程中所有的線程***享的,
這意味著盡管單個線程可以阻止某些信號,但當線程修改了與某個信號相關的處理行為後,所
有的線程都***享這個處理行為的改變。這樣如果壹個線程選擇忽略某個信號,而其他線程可
以恢復信號的默認處理行為,或者為信號設置壹個新的處理程序,從而可以撤銷上述線程的
信號選擇。
進程中的信號是送到單個線程的,如果信號與硬件故障或者計時器超時有關,該型號就被發
送到引起該事件的線程中去,而其他的信號則被發送到任意壹個線程。
sigprocmask的行為在多線程的進程中沒有定義,線程必須使用pthread_sigmask
總結:壹個信號可以被沒屏蔽它的任何壹個線程處理,但是在壹個進程內只有壹個多個線程***用的處理函數。