C 標準庫之condition variable

2022-07-13 06:12:12 字數 595 閱讀 8194

condition_variable有5個函式,函式名及對應的功能如下:

wait阻塞自己,等待喚醒

wait_for阻塞自己,等待喚醒,最多等待一段時間

wait_until阻塞自己,等待喚醒,最多等待到某個時間點

notify_one 喚醒乙個等待在這個條件變數上的執行緒

notify_all 喚醒所有等待在這個條件變數上的執行緒

3個wait函式都要求輸入乙個已經上鎖的unique_lock變數,並且都有兩個版本,乙個版本接受乙個比較器,而另乙個沒有。用wait來舉例說明:

void wait(unique_lock&lck);

templatevoid wait(unique_lock&lck,predicate pred);

第二個版本可解決虛假喚醒的問題,其行為類似  while( !pred() ) wait(lck); 如果標準庫不提供這個版本,我們就只能自己寫這些**了

condition_variable_any與condition_variable基本一致,區別只是在於condition_variable要求的互斥鎖只能用unique_lock,而condition_variable_any則不作限制。

C 標準庫之

iomanip在c 程式裡面經常見到下面的標頭檔案 include io代表輸入輸出,manip是manipulator 操縱器 的縮寫 在c 上只能通過輸入縮寫才有效。dec 設定整數為十進位制 hex 設定整數為十六進製制 oct 設定整數為八進位制 setbase n 設定整數為n進製 n 8...

C 標準庫之cctype

c 語言下 標頭檔案 include 說明 字元處理庫 功能一 字元測試 1 函式原型均為int is x int 2 引數為int,任何實參均被提公升成整型 3 只能正確處理處於 0,127 之間的值 功能二 字元對映 1 函式原型為int to x int 2 對引數進行檢測,若符合範圍則轉換,...

C 標準庫之iomanip

c 語言下 標頭檔案 include 說明 是i o流控制標頭檔案,就像c裡面的格式化輸出一樣 控 制 符 作 用 dec 設定整數為十進位制 hex設定整數為十六進製制 oct設定整數為八進位制 setbase n 設定整數為n進製 n 8,10,16 setfill n 設定字元填充,c可以是字...