同步與互斥:簡單的控制
windows和linux下用於同步與通訊的機制大體一致,下面簡單做乙個歸納。
1.多執行緒的同步
方式 windows linux 備註
原子操作 有 有 速度快
互斥鎖 臨界區和mutex pthread_mutex_t 此外還有自旋鎖,讀寫鎖等擴充套件,用於互斥,保證乙個時刻只有乙個執行緒執行
條件變數 event pthread_cond_t 用於同步。
訊號量 semaphore sem_t 用於控制資源的訪問
2.多程序的同步
方式 windows linux
互斥鎖 mutex pthread_mutex_t
條件變數 event pthread_cond_t
訊號量 semaphore sem_t
多程序的同步方式與多執行緒的同步方式基本一致,除了不能使用原子操作外;另外對於同步物件的建立方式上稍有差異。
3.多程序的通訊
方式 windows linux
訊號 無 非同步的通訊機制
共享記憶體 有 有
匿名管道 有 有
命名管道/fifo 有 有
訊息佇列 有 有
套接字 有 有
此外還有一些特殊的機制,如記憶體對映檔案,郵箱等機制。
多執行緒之間同步
1 posix訊號量 includeint sem init sem t sem,int pshared,unsigned int value int sem destroy sem t sem int sem wait sem t sem sem trywait sem t sem int sem...
多執行緒之間通訊
多執行緒之間通訊,其實就是多個執行緒在操作同乙個資源,但是操作的動作不同。需求 第乙個執行緒寫入 input 使用者,另乙個執行緒取讀取 out 使用者.實現讀乙個,寫乙個操作。共享資源源實體類 class res輸入執行緒資源 class intthrad extends thread overr...
多執行緒之間通訊
多執行緒之間通訊 就是多個執行緒在操作同乙個資源,但是操作的動作不同 現在需要實現,生產一台電機,銷售一台電機問題。實現 執行結果 資料發生錯亂,造成執行緒安全問題 解決執行緒安全問題 通過wait notify來解決。wait和sleep的區別 wait可以指定時間也可以不指定時間,sleep必須...