亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

c++多線程詳解

2019-11-06 06:16:15
字體:
來源:轉載
供稿:網友

來源自我的博客

http://www.yingzinanfei.com/2017/03/07/cduoxianchengxiangjie/

atomic atomic atomic_boolatomic_intatomic_longatomic_flagthread thread類創建線程,接受函數和函數參數作為thread類參數mutex mutex類,互斥量 mutex 最基本的Mutex類recursive_mutex 遞歸Mutex類,允許同一線程對互斥量多次上鎖(遞歸上鎖),來獲得互斥量對象的多層所有權。釋放互斥量時需要調用與該鎖層次深度相同次數的unlock()time_mutex 定時Mutex類 try_lock_for() 接受一個時間范圍,表示在這一段時間范圍之內線程如果沒有獲得鎖則被阻塞住,如果在此期間其他線程釋放了鎖,則該線程可以獲得互斥量的鎖,如果超時返回falsetry_lock_until() 接受一個時間點作為參數,在指定時間點未到來之前線程如果沒有獲得鎖則被阻塞住,如果在此期間其他線程釋放了鎖,則該線程可以獲得對互斥量的鎖,如果超時返回falserecursive_timed_mutex 定時遞歸Mutex類Lock類 lock_guard 與Mutex RAII相關,方便線程對互斥量上鎖 模板類,template class lock_guard;lock_guard對象通常用于管理某個鎖對象在某個lock_guard對象的聲明周期內,它所管理的鎖對象會一直保持上鎖狀態。而lock_guard的生命周期結束之后,它所管理的鎖對象會被解鎖。不負責管理Mutex對象的生命周期,只是簡化了Mutex對象的上鎖和解鎖操作,方便線程對互斥量上鎖。構造函數 explicit lock_guard(mutex_type& m); locking初始化,在構造時對m進行上鎖lock_guard(mutex_type& m, adopt_lock_t tag); adopting初始化,在Mutex對象m已經被當前線程鎖住后調用lock_guard(const lock_guard&) = delete; 拷貝構造和移動構造均被禁用unique_lock 與Mutex RAII相關,方便線程對互斥量上鎖,但提供了更好的上鎖和解鎖控制 以獨占所有權的方式管理mutex對象的上鎖和解鎖操作構造函數 unique_lock() noexcept; 默認構造函數,不管理任何Mutex對象explicit unique_lock(mutex_type& m); locking初始化,管理Mutex對象m,并嘗試調用m.lock()對Mutex對象進行上鎖,如果此時另外某個unique_lock對象已經管理了該Mutex對象m,則當前線程將會被阻塞unique_lock(mutex_type& m, try_to_lock_t tag); try_locking初始化,嘗試上鎖不成功時不會阻塞當前線程unique_lock(mutex_type&m, defer_lock_t tag) noexcept; deferred初始化,初始化時并不鎖住Mutex對象,m應該是一個沒有當前線程鎖住的Mutex對象unique_lock(mutex_type&m, adopt_lock_t tag); adopting初始化,m應該是一個已經被當前線程鎖住的Mutex對象。template<class Rep, class Period> unique_lock(mutex_type& m, const chrono::duration<Rep, Period>& rel_time); locking一段時間,試圖調用m.try_lock_for來鎖住Mutex對象一段時間(rel_time)template<class Clock, class Duration> unique_lock(mutex_type& m, const chrono::time_point<Clock, Duration>& abs_time); locking到某個時間點(abs_time)之前unique_lock(const unique_lock&) = delete; 拷貝構造被禁用unique_lock(unique_lock&& x); 移動構造被禁用其他類型 once_flagadopt_lock_tdefer_lock_ttry_to_lock_t函數 lock() 可以同時對多個互斥量上鎖 如果該互斥量當前沒有被鎖住,則調用線程將該互斥量鎖住,直到調用unlock之前,該線程一直擁有該鎖如果當前互斥量被其他線程鎖住,則當前的調用線程被阻塞住如果當前互斥量被當前調用線程鎖住,則會發生死鎖(deadlock)try_lock() 嘗試同時對多個互斥量上鎖,如果互斥量被其他線程占有,則當前線程也不會被阻塞 如果該互斥量當前沒有被鎖住,則調用線程將該互斥量鎖住,直到調用unlock之前,該線程一直擁有該鎖如果當前互斥量被其他線程鎖住,則當前的調用線程返回false,并不會被阻塞掉如果當前互斥量被當前調用線程鎖住,則會發生死鎖(deadlock)unlock() 解鎖condition_variable 條件變量。當condition_variable對象的某個wait函數被調用的時候,它使用unique_lock(通過mutex)來鎖住當前線程。當前線程會一直阻塞,直到另外一個線程在相同的condition_variable對象上調用了notification函數來喚醒當前線程 condition_variable類 通常使用unique_lock來等待 構造函數 condition_variable();condition_variable(const codition_variable&) = delete; 拷貝構造函數被禁用condition_variable::wait()函數 void wait(unique_lock<mutex>& lck); 當前線程調用wait()后將阻塞,直到另外某個線程調用notify_*喚醒當前線程。在線程被阻塞時,該函數會自動調用lck.unlock()釋放鎖,使得其他阻塞在鎖競爭上的線程得以繼續執行。另外,一旦當前線程獲得通知,wait()函數也是自動調用lck.lock(),使得lck的狀態和wait函數被調用時相同template<class PRedicate> void wait(unique_lock<mutex>& 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 枚舉類型 cv_status::no_timeout wait_for或者wait_until沒有超時,即在規定的時間段內線程收到了通知cv_status::timeout wait_for或者wait_until超時notify_all_at_thread_exitfuture Provider類 promise promise對象可以保存某一類型T的值,該值可被future對象讀?。赡茉诹硗庖粋€線程中),因此promise也提供了一種線程同步的手段在promise對象構造時可以和一個共享狀態(通常是std::future)相關聯,并可以在相關聯的共享狀態(std::future)上保存一個類型為T的值可以通過get_future來獲取與該promise對象相關聯的fuure對象,調用該函數之后,兩個對象共享相同的共享狀態(shared state)promise對象是異步Provider,它可以在某一時刻設置共享狀態的值future對象可以異步返回共享狀態的值,或者在必要的情況下阻塞調用者并等待共享狀態標志變為ready,然后才能獲取共享狀態的值。構造函數 promise(); 默認構造函數,初始化一個空的共享狀態template <class Alloc> promise(allocator_arg_t aa, const Alloc& alloc); 帶自定義內存分配器的構造函數,與默認構造函數類似,但是使用自定義分配器來分配共享狀態promise(const promise&) = delete; 拷貝構造函數被禁用promise(promise&& x) noexcept; 移動構造函數promise的Operator=沒有拷貝語義,即普通的賦值操作被禁用。operator=只有move語義,所以promise對象是禁止拷貝的成員函數 promise::get_future() 該函數返回一個與promise共享狀態相關聯的future。返回的future對象可以訪問由promise對象設置在共享狀態上的值或者某個異常對象。只能從promise共享狀態獲取一個future對象。在調用該函數之后,promise對象通常會在某個時間點準備好(設置一個值或者一個異常對象),如果不設置值或者異常,promise對象在析構時會自動地設置一個future_error異常(broken_promise)來設置其自身的準備狀態promise::set_value() 設置共享狀態的值, 此后promise的共享標志變為readypromise::set_exception() 為promise設置異常,此后promise的共享狀態標志變為readypackage_taskFutures類 futureshared_future其他類型 future_errorfuture_errcfuture_statuslaunchasync()函數future_category()函數
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国精产品一区一区三区有限在线| 久久人人爽国产| 亚洲欧美日韩爽爽影院| 久久精品影视伊人网| 国产亚洲视频中文字幕视频| www.亚洲免费视频| 亚洲国产成人精品女人久久久| 精品亚洲一区二区三区在线播放| 日韩av成人在线观看| 91视频免费在线| 欧美日韩一区二区在线| 国产成人综合一区二区三区| 日韩中文字幕久久| 久久久久国产精品免费网站| 日韩av免费看网站| 日韩精品极品视频免费观看| 成人在线视频网| 国产精品吴梦梦| 亚洲图片欧洲图片av| 亚洲久久久久久久久久久| 日韩av观看网址| 亚洲国产成人久久综合| 国产日韩欧美综合| 欲色天天网综合久久| 国产欧美在线视频| 久久国产精品久久久久久久久久| 国产性猛交xxxx免费看久久| 亚洲精品美女久久久| 日韩成人av在线| 蜜臀久久99精品久久久无需会员| 国产精品亚洲综合天堂夜夜| 青青草国产精品一区二区| 国产精品成人一区二区| 欧美激情综合色综合啪啪五月| 亚洲**2019国产| 亚洲精品xxxx| 精品国偷自产在线视频| 中文亚洲视频在线| 91热福利电影| 欧美日韩久久久久| 久久青草福利网站| 国产www精品| 精品国产一区av| 日本韩国欧美精品大片卡二| 国语自产精品视频在线看抢先版图片| 亚洲人免费视频| 91精品国产99| 欧美电影免费观看高清| 日韩av免费在线播放| 奇米一区二区三区四区久久| 日本成人免费在线| 久久99久久久久久久噜噜| 国产精品入口尤物| 久久6免费高清热精品| 国产精品精品一区二区三区午夜版| 国内成人精品视频| 国产视频精品免费播放| 国模精品一区二区三区色天香| 欧美大片在线看免费观看| 富二代精品短视频| 国产拍精品一二三| 91牛牛免费视频| 91亚洲精品久久久| 国产精品免费视频xxxx| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美一级片一区| 91av在线播放视频| 日韩有码片在线观看| 亚洲男人天天操| 国产精品一区二区三区成人| 欧美一区二区三区图| 久久国产精品99国产精| 日韩欧美在线一区| 欧美日韩在线另类| 欧美成人激情视频| 成人妇女淫片aaaa视频| 国产精品免费久久久久影院| 久久精品一区中文字幕| 亚洲欧美中文日韩在线v日本| 日韩美女福利视频| 亚洲精选一区二区| 日韩av手机在线| 成人福利在线观看| 日韩高清电影好看的电视剧电影| 亚洲一区二区日本| 国产一区二区三区视频在线观看| 韩国19禁主播vip福利视频| 亚洲欧美变态国产另类| 久久久爽爽爽美女图片| 91精品国产综合久久久久久蜜臀| 国产999视频| 亚洲精品v欧美精品v日韩精品| 91在线免费看网站| 国产成人一区二| 亚洲午夜性刺激影院| 日韩av第一页| 热久久美女精品天天吊色| 欧美老女人bb| 亚洲人成亚洲人成在线观看| 亚洲精品第一国产综合精品| 中文字幕在线看视频国产欧美| 欧美成人性生活| 亚洲人午夜色婷婷| 伊人久久久久久久久久| 色樱桃影院亚洲精品影院| 91精品国产自产在线| 国产精品久久久久免费a∨| 日韩黄色在线免费观看| 精品久久久久久中文字幕一区奶水| 欧美怡红院视频一区二区三区| 国产v综合ⅴ日韩v欧美大片| 日韩av在线不卡| 亚洲综合大片69999| 久久久久五月天| 色播久久人人爽人人爽人人片视av| 欧美亚州一区二区三区| 亚洲国产精品嫩草影院久久| 亚洲精品电影久久久| 青青草99啪国产免费| 欧美在线视频一二三| 日韩中文字幕久久| 日韩电影在线观看永久视频免费网站| 日本久久久久久| 欧美成人精品三级在线观看| 久久久国产在线视频| 日韩精品高清在线观看| 欧美性猛交xxxx乱大交3| 亚洲视频一区二区| 欧美成人合集magnet| 日韩成人在线电影网| 国产亚洲精品91在线| 亚洲欧美色图片| 国产精品美女www爽爽爽视频| 欧美重口另类videos人妖| 久久久99免费视频| 国产日韩欧美视频| 久久久久久久久综合| 久久精品国产亚洲| 91香蕉国产在线观看| 精品久久香蕉国产线看观看gif| 美女久久久久久久久久久| 国产精品自拍偷拍| 亚洲激情视频在线| 黄网站色欧美视频| 色综久久综合桃花网| 亚洲第一二三四五区| 九色精品免费永久在线| 久久亚洲春色中文字幕| 亚洲美女免费精品视频在线观看| 91色琪琪电影亚洲精品久久| 久久亚洲精品一区二区| 国产精品免费久久久久久| 欧美视频专区一二在线观看| 一区二区av在线| 国产视频亚洲精品| 日韩大片免费观看视频播放| 日韩视频亚洲视频| 亚洲国产成人91精品| 亚洲欧美三级伦理| 伊人成人开心激情综合网| 日韩精品视频免费在线观看| 久久久女人电视剧免费播放下载| 精品无人国产偷自产在线| 国产精品久久久久久久午夜|