Linux的執行緒間通訊方式總結

2021-08-11 22:01:50 字數 590 閱讀 3652

linux系統中的執行緒間通訊方式主要以下幾種:

*鎖機制:包括互斥鎖、條件變數、讀寫鎖和自旋鎖。

互斥鎖確保同一時間只能有乙個執行緒訪問共享資源。當鎖被占用時試圖對其加鎖的執行緒都進入阻塞狀態(釋放cpu資源使其由執行狀態進入等待狀態)。當鎖釋放時哪個等待執行緒能獲得該鎖取決於核心的排程。

讀寫鎖當以寫模式加鎖而處於寫狀態時任何試圖加鎖的執行緒(不論是讀或寫)都阻塞,當以讀狀態模式加鎖而處於讀狀態時「讀」執行緒不阻塞,「寫」執行緒阻塞。讀模式共享,寫模式互斥。

條件變數可以以原子的方式阻塞程序,直到某個特定條件為真為止。對條件的測試是在互斥鎖的保護下進行的。條件變數始終與互斥鎖一起使用。 * 

訊號量機制(semaphore):包括無名執行緒訊號量和命名執行緒訊號量

*訊號機制(signal):類似程序間的訊號處理

執行緒間的通訊目的主要是用於執行緒同步,所以執行緒沒有像程序通訊中的用於資料交換的通訊機制。

Linux的程序 執行緒間通訊方式總結

linux系統中的程序間通訊方式主要以下幾種 同一主機上的程序通訊方式 unix程序間通訊方式 包括管道 pipe 有名管道 fifo 和訊號 signal system v程序通訊方式 包括訊號量 semaphore 訊息佇列 message queue 和共享記憶體 shared memory ...

Linux的程序 執行緒間通訊方式總結

linux系統中的程序間通訊方式主要以下幾種 同一主機上的程序通訊方式 unix程序間通訊方式 包括管道 pipe 有名管道 fifo 和訊號 signal system v程序通訊方式 包括訊號量 semaphore 訊息佇列 message queue 和共享記憶體 shared memory ...

Linux的程序 執行緒間通訊方式總結

linux系統中的程序間通訊方式主要以下幾種 同一主機上的程序通訊方式 unix程序間通訊方式 包括管道 pipe 有名管道 fifo 和訊號 signal system v程序通訊方式 包括訊號量 semaphore 訊息佇列 message queue 和共享記憶體 shared memory ...