2018-10-23 step

C++ 11 幾個特性的整理

std::future - std::promise

解決的問題

返回值的異步獲让挥印:我們送一個任務到線程中去執(zhí)行的時候,大部分時候是關心任務(就是函數(shù)啦)的返回值的温赔。因為是起線程去執(zhí)行蛤奢,并不能向單線程同步執(zhí)行那樣簡單,考慮到線程同步陶贼,自己實現(xiàn)至少需要一個返回值啤贩,一個狀態(tài)標識,與相應的同步代碼拜秧。
std::future提供了存儲異步值的一個基礎設施,包括了剛才說的值枉氮,狀態(tài)志衍,以及同步機制。
std::promise類內包含了future實例聊替。
實踐中教科書的用法就是楼肪,主線程聲明promise,獲取其future惹悄,然后把promise當成參數(shù)送到子線程執(zhí)行春叫,主線程在合適的位置調用future.wait(),wait_for()... get()來獲取返回值。

參考

std::future
std::promise

condition_variable

解決的問題

并發(fā)任務處理臨界區(qū)時泣港,需要某種條件就緒了之后再處理暂殖,每個線程不斷查詢條件是否滿足,CPU做了很多無用功当纱,condition_variable讓所有等待它的線程去阻塞呛每,直到被喚醒。

  • 因為等待條件變量的線程是阻塞等待的惫东,不參與cpu調度(回想一下進程狀態(tài)圖)莉给,這樣有助于效率。
  • 條件滿足后被喚醒是通過鎖串行處理臨界區(qū)的廉沮。

參考

std::condition_variable

std::function

解決的問題

std::function是一個通用的函數(shù)包裝器颓遏,主要解決的問題是延遲執(zhí)行,教科書式的使用就是callback函數(shù)
std::function<R(args..)>:R - 返回值滞时, args - 參數(shù)叁幢。

參考

std::function

std::packaged_task

解決的問題

packaged_task跟function很像,都是可執(zhí)行對象包裝器的作用坪稽,不同在于曼玩,function的返回值必須是即時的鳞骤,而packaged_task內藏一個future對象,可以獲取異步返回結果黍判。

參考

std::packaged_task

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末豫尽,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子顷帖,更是在濱河造成了極大的恐慌美旧,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贬墩,死亡現(xiàn)場離奇詭異榴嗅,居然都是意外死亡,警方通過查閱死者的電腦和手機陶舞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門嗽测,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人肿孵,你說我怎么就攤上這事唠粥。” “怎么了颁井?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵厅贪,是天一觀的道長。 經(jīng)常有香客問我雅宾,道長,這世上最難降的妖魔是什么葵硕? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任眉抬,我火速辦了婚禮,結果婚禮上懈凹,老公的妹妹穿的比我還像新娘蜀变。我一直安慰自己,他們只是感情好介评,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布库北。 她就那樣靜靜地躺著,像睡著了一般们陆。 火紅的嫁衣襯著肌膚如雪寒瓦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天坪仇,我揣著相機與錄音杂腰,去河邊找鬼。 笑死椅文,一個胖子當著我的面吹牛喂很,可吹牛的內容都是我干的惜颇。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼少辣,長吁一口氣:“原來是場噩夢啊……” “哼凌摄!你這毒婦竟也來了?” 一聲冷哼從身側響起漓帅,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤望伦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后煎殷,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體屯伞,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年豪直,在試婚紗的時候發(fā)現(xiàn)自己被綠了劣摇。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡弓乙,死狀恐怖末融,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情暇韧,我是刑警寧澤勾习,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站懈玻,受9級特大地震影響巧婶,放射性物質發(fā)生泄漏。R本人自食惡果不足惜涂乌,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一艺栈、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧湾盒,春花似錦湿右、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至尖殃,卻和暖如春丈莺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背分衫。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工场刑, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓牵现,卻偏偏與公主長得像铐懊,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子瞎疼,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內容