1. 程式人生 > >Linux併發(POSIX訊號量)

Linux併發(POSIX訊號量)

System-V的訊號量是老古董,除非萬不得已,否則我們一般用POSIX訊號量,好用、簡單、靠譜。

拓展:

POSIX訊號量分為兩種,分別是POSIX無名訊號量和POSIX有名訊號量,這兩種訊號量比之前介紹的system-V的訊號量機制要簡潔,雖然沒有後者的應用範圍那麼廣泛(尤其在一些老系統中,因為system-V的訊號量機制要更古老一些),但是POSIX良好的設計使得他們更具吸引力。

POSIX有名訊號量的一般使用步驟是:

1,使用sem_open( )來建立或者開啟一個有名訊號量。

2,使用sem_wait( )和sem_post( )來分別進行P操作和V操作。

3,使用sem_close( )來關閉他。

4,使用sem_unlink( )來刪除他,並釋放系統資源。

POSIX無名訊號量的一般使用步驟是:

1,在這些執行緒都能訪問到的區域定義這種變數(比如全域性變數),型別是sem_t。

2,在任何執行緒使用它之前,用sem_init( )初始化他。

3,使用sem_wait( )/sem_trywait( )和sem_post( )來分別進行P、V操作。

4,不再需要時,使用sem_destroy( )來銷燬他。