1. 程式人生 > >Linux訊號 六 訊號與執行緒的關係

Linux訊號 六 訊號與執行緒的關係

    " POSIX表示可移植作業系統介面(Portable Operating System Interface of UNIX,
縮寫為 POSIX ),POSIX標準定義了作業系統應該為應用程式提供的介面標準,是IEEE為要在各
種UNIX作業系統上執行的軟體而定義的一系列API標準的總稱.
    POSIX標準意在期望獲得原始碼級別的軟體可移植性。換句話說,為一個POSIX相容的操作系
統編寫的程式,應該可以在任何其它的POSIX作業系統(即使是來自另一個廠商)上編譯執行。" 

POSIX標準對多執行緒情況下的訊號機制提出來一些要求:

1. 訊號處理函式必須在多執行緒程序的所有執行緒間共享,但是每個執行緒要有自己的掛起訊號集合和阻塞訊號掩碼。

2. POSIX函式kill/sigqueue必須面向程序,而不是程序下某個特定的執行緒。

3. 傳送給多執行緒應用的訊號僅遞送給一個執行緒,這個執行緒是由核心從不會阻塞該訊號的執行緒中隨意選出來的。

4. 如果傳送一個致命訊號到多執行緒,那麼核心將殺死該應用的所有執行緒,而不僅僅是接收訊號的那個執行緒。

基本上Linux也都遵循這些需求。

 

 

 

 

 

 

 

參考資料:

1. 《Linux環境程式設計,從應用到核心》高峰,李彬著