為什麼要用執行緒鎖呢.
比如當乙個執行緒再修改乙個變數,另乙個執行緒在讀取那個變數,那麼讀到的值可能是乙個無法**的值,因為有可能他在讀的時候另乙個執行緒正寫到一半.
由於執行緒導致的bug會比較難查詢,因此寫乙個靠譜的執行緒鎖非常重要.
總結一下mutex_lock相關函式:
int
pthread_mutex_init
(pthread_mutex_t *restrict mutex,
const pthread_mutexattr_t *restrict attr)
;//初始化,attr填null為預設屬性,初始化成功返回0.
intpthread_mutex_destroy
(pthread_mutex_t *mutex)
;
C 執行緒鎖使用全功略
前兩篇簡單介紹了執行緒同步lock,monitor,同步事件eventwaithandler,互斥體mutex的基本用法,在此基礎上,我們對 它們用法進行比較,並給出什麼時候需要鎖什麼時候不需要的幾點建議。最後,介紹幾個fcl中線程安全的類,集合類的鎖定方式等,做為對執行緒同步系列的完善 和補充。l...
C 執行緒鎖使用全功略
前兩篇簡單介紹了執行緒同步lock,monitor,同步事件eventwaithandler,互斥體mutex的基本用法,在此基礎上,我們對 它們用法進行比較,並給出什麼時候需要鎖什麼時候不需要的幾點建議。最後,介紹幾個fcl中線程安全的類,集合類的鎖定方式等,做為對執行緒同步系列的完善 和補充。l...
C 多執行緒中鎖的使用
最近的專案中涉及到實時資料的處理,經常會使用多執行緒訪問共享資源。如果處理不當,資源未能正確在各個執行緒中同步的話,計算結果將會出現錯誤。關於資源同步最常用的技術就是加鎖。這裡提到是乙個比較簡單的鎖 lock。lock是對monitor中的兩個函式enter和exit的封裝。當時專案的模式是這樣的 ...