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的訊號量。互斥量被獲取之後就不能再被獲取,因此對互斥體的獲取和釋放操作常常稱為加鎖和解鎖操作。互斥量只能由獲取它的執行緒進行釋放,如果違反這一原則,則結果是未定義的。互斥量從本質上說是一把鎖,在訪問共享資源前對互...