210221階段三線程 訊號量 互斥鎖

2021-10-19 17:17:29 字數 755 閱讀 2352

執行緒同步

互斥量生產者消費者模型

二、上課沒有聽懂或者沒有理解的地方

三、當天學習的收穫

pcb結構體包含程序所有資訊 有pid 時間片等等

時間片是cpu分配給程序執行的單位時間。

程序切換需要儲存程序執行資訊,程序數量越多,開銷越大

標頭檔案 編譯帶執行緒函式庫的程式時要加 -lpthread

呼叫成功時返回值是「0」,如果失敗則返回乙個錯誤。

標頭檔案

訊號量物件用sem_t表示

sem_init函式

呼叫成功時 返回 0;

sem_wait函式

呼叫成功時 返回 0;

sem_post函式

原型:int sem_post(sem_t *sem);

引數:

呼叫成功時 返回 0;

每次只允許乙個執行緒去訪問它

生產者sem——wait();

//做蛋糕

pthread_mutex_lock();

g_count+1;

pthread_mutex_unlock();

sem_post();

消費者sem_wait()

pthread_mutex_lock

g_count-1

pthread_mutex_unlock

210226階段三 systemV訊號量

systemv訊號量 二 上課沒有聽懂或者沒有理解的地方 三 當天學習的收穫 執行緒屬於posix執行緒 互斥鎖 訊號量屬於posix訊號量 在程序內部使用 systemv訊號量 semget shmget 在程序間使用 通過ipcs檢視的都是systemv系列 訊號量都是對乙個數字進行加一減一的操...

POSIX執行緒庫(三)執行緒同步 訊號量

為什麼需要用訊號量?在posix執行緒庫 二 執行緒同步輪詢技術 一種笨笨方法 簡單的變數 延遲的方法是一種非常不聰明的方法,主要原因是普通變數不能保證原子性,同時對標誌的操作可能導致預料外的效果。荷蘭科學家dijkstra提出訊號量的概念,它是一種特殊的變數,可以被遞增遞減,當兩個或以上執行緒對這...

linux多執行緒程式設計中使用訊號量同步與互斥鎖

執行緒的訊號量與程序間通訊中使用的訊號量是一樣的,它是乙個特殊的變數。可以被增加和減少,但對其的關鍵操作訪問必須保證原子操作。如果乙個程式中有多個執行緒試圖改變乙個訊號量的值,系統將保證所有的操作都依次進行。訊號量的函式都是以sem 開頭,執行緒中使用的基本訊號量函式有4個,在標頭檔案semapho...