對於多執行緒程式來說,同步是指在一定的時間內只允許某乙個執行緒訪問某個資源 。 而在
此時間內,不允許其他的執行緒訪問該資源。同步資源的方式:互斥鎖、條件變數、讀寫鎖、
訊號量。下面介紹下互斥鎖
將互斥鎖想象成乙個只能容納乙個人的洗手間, 當某個人進入洗手間的時候, 可以從
裡面將洗手間鎖上,其他人只能在互斥鎖外面等待那個人出來,才能進去
// 多執行緒同步、示例10
// 互斥鎖同步資源,模擬火車售票系統
#include#include#include#include#includepthread_mutex_t mutex_x = pthread_mutex_initializer;
int itotal_ticket_num = 20;
void *sell_ticket(void* arg)
pthread_mutex_unlock(&mutex_x);
}pthread_exit((void*)1);
}int main()
}sleep(20);
void *retval;
for(int i = 0;i<4;i++)
}printf("...\n");
return 0;
}
Qt 多執行緒同步之互斥鎖
qmutex需要配對使用lock 和unlock 來實現 段的保護 qmutexlocker是另外乙個簡化了互斥量處理的類。qmutexlocker建構函式接受乙個互斥量作為引數並將其鎖定,qmutexlocker的析構函式則將此互斥量解鎖,所以在qmutexlocker例項變數的生存期內的 段得到...
iOS 多執行緒 鎖 互斥 同步
在ios中有幾種方法來解決多執行緒訪問同乙個記憶體位址的互斥同步問題 方法一,synchronized id anobject 最簡單的方法 會自動對引數物件加鎖,保證臨界區內的 執行緒安全 cpp view plain copy print?synchronized self 方法二,nslock...
Linux多執行緒同步 互斥鎖
當多個執行緒對同乙個資源進行訪問的時候,為了這個資源的安全性,我們需要對這個資源進行鎖定,規定同一時間只有乙個資源能夠獲得該鎖的鑰匙,其它執行緒要獲得該資源需要等待該執行緒 互斥鎖建立 pthread mutex t mutex 互斥鎖初始化 mutex pthread mutex initiali...