(4 1)Linux執行緒同步機制 互斥量

2021-09-29 02:56:25 字數 1043 閱讀 6092

4.互斥量的操作

5.互斥量的操作總結

乙個任務包含乙個程序以及多個執行緒

全域性變數儲存在進行資料段中,被執行緒所共享。三個步驟如下:

併發:兩個執行緒的執行,可以通過os或者os的流水線而實現併發

eg:執行緒a和執行緒b共享乙個全域性變數i,兩個執行緒對i都實現i+1的操作

(1)大體過程如下:

pthread_mutex_t mutex;
(2)互斥量初始化方式:

include

pthread_mutex_t mutex=pthread_mutex_initializer;

include

函式原型:int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t * attr)

;引數與返回值:

mutex:指向互斥量的指標

attr:設定互斥量的屬性,通常可採用預設屬性,傳入空指標null;

成功返回0,出錯返回錯誤碼

(3)互斥量的銷毀

include

函式原型:int pthread_mutex_destroy(pthread_mutex_t *mutex)

;引數與返回值:

mutex:即互斥量

成功返回0,錯誤返回錯誤碼

(4)互斥量的加鎖和解鎖

include

函式原型:

int pthread_mutex_lock(pthread_mutex_t *mutex)

;int pthread_mutex_unlock(pthread_mutex_t *mutex)

;

(4)互斥量非阻塞加鎖

include

int pthread_mutex_trylock(pthread_mutex_t *mutex)

;

執行緒間同步機制 互斥鎖

互斥以排他方式防止共享資料被併發修改。互斥量從本質來說是一把鎖,是乙個二元變數,其狀態為開鎖 允許0 和上鎖 禁止1 在訪問共享資源前對互斥量進行設定 加鎖 在訪問完成後釋放 解鎖 互斥量。1 在訪問該資源前,首先申請該互斥鎖,如果該互斥鎖處於開鎖狀態,則申請到該鎖物件,並立即占有該鎖 使該鎖處於鎖...

執行緒管理 互斥量同步機制

互斥量機制 在計算機系統中有許多共享資源不允許使用者並行使用,像印表機這樣的共享裝置被稱為 排它性資源 因為它一次只能由乙個執行流訪問。執行流必須以互斥的方式 執行訪問排它性資源的 互斥量 mutex 又稱為互斥鎖,是一種用來保護臨界區的特殊變數,它可以處於鎖定 locked 狀態,也可以處於解鎖 ...

執行緒同步機制之互斥量

一 互斥量的概念 互斥量 mutex 從概念上來說類似於乙個二進位制訊號量,即初始值為1的訊號量。互斥量被獲取之後就不能再被獲取,因此對互斥體的獲取和釋放操作常常稱為加鎖和解鎖操作。互斥量只能由獲取它的執行緒進行釋放,如果違反這一原則,則結果是未定義的。互斥量從本質上說是一把鎖,在訪問共享資源前對互...