**自我的部落格
atomic_flag
thread
mutex
recursive_timed_mutex 定時遞迴mutex類
lock類
unique_lock 與mutex raii相關,方便執行緒對互斥量上鎖,但提供了更好的上鎖和解鎖控制
其他型別
函式 try_lock() 嘗試同時對多個互斥量上鎖,如果互斥量被其他執行緒占有,則當前執行緒也不會被阻塞
unlock() 解鎖
condition_variable 條件變數。當condition_variable物件的某個wait函式被呼叫的時候,它使用unique_lock(通過mutex)來鎖住當前執行緒。當前執行緒會一直阻塞,直到另外乙個執行緒在相同的condition_variable物件上呼叫了notification函式來喚醒當前執行緒
templatevoid wait(unique_lock& lck, predicate pred);
只有當pred條件為false時呼叫wait()都會阻塞當前執行緒,並且在收到其他執行緒的通知後只有當pred為true時才會被解除阻塞。類似於`while(!pred()) wait(lck);
condition_variable::wait_for()函式 可以指定乙個時間段
condition_variable::wait_until()函式 可以指定乙個時間點
condition_variable::notify_one()介紹 喚醒某個等待執行緒。如果當前沒有等待執行緒,則該函式什麼也不做。如果同時存在多個等待執行緒,則喚醒某個執行緒是不確定的
condition_variable::notify_all()介紹 喚醒所有等待執行緒。
condition_variable_any 通常使用另外的lockable型別來等待。wait函式可以接受任何lockable引數
cv_status 列舉型別
notify_all_at_thread_exit
future
promise的operator=沒有拷貝語義,即普通的賦值操作被禁用。operator=只有move語義,所以promise物件是禁止拷貝的
成員函式
package_task
futures類
其他型別
async()函式
future_category()函式
c 多執行緒unique lock詳解
unique lock是個類模板,工作中,一般lock guard 推薦使用 lock guard取代了mutex的lock 和unlock unique lock比lock guard靈活很多,效率上差一點,記憶體占用多一點。lock guard可以帶第二個引數 std lock guardsbg...
詳解c 多執行緒(四)
為了避免多個執行緒同時修改全域性變數,c 11除了提供互斥量mutex這種方法以外,還提供了atomic模版函式。使用atomic可以避免使用鎖,而且更加底層,比mutex效率更高。為了方便使用,c 11為模版函式提供了別名。atomic別名 atomic bool atomic別名 atomic ...
多執行緒詳解
多執行緒核心概念 普通方法呼叫執行緒 注意 執行緒啟動不一定立即執行,由cpu排程執行 執行緒的三種建立方式 實現runnable介面,繼承執行緒 thread 類,實現callable介面 方法一 繼承執行緒 thread 類 建立執行緒的方法1 繼承thread類,呼叫start啟動執行緒 注意...