• <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>

    如何實現從線程中異步獲取值

    C++11

    方式/步調

    1. 1

      實現線程函數,其參數為std::promise類型,該線程函數挪用promise的接口set_value進行傳值

      37d12f2eb9389b5046b3b88b8b35e5dde6116e9e.jpg
    2. 2

      本家兒線程中界說promise對象,然后經由過程這個對象獲取future對象

      34fae6cd7b899e51656762cd4ca7d933c9950d79.jpg
    3. 3

      啟動線程函數,然后將上一步調界說的promise對象經由過程指針傳遞進去

      9825bc315c6034a87f44e058c513495408237640.jpg
    4. 4

      然后本家兒線程經由過程挪用future的函數get來梗阻期待線程的返回值

      838ba61ea8d3fd1f79e8fae33e4e251f94ca5f01.jpg
    5. 5

      調試運行輸出如下成果,從這個成果可以看出future當作功獲取線程返回的值

      0823dd54564e9258f8fcde379282d158cdbf4e1a.jpg
    6. 6

      最后再來總結下,先界說promise對象,從promise對象獲取futrue對象, 接著啟動線程,線程經由過程promise對象將值傳遞歸去,而本家兒線程挪用future對象梗阻期待

      bf096b63f6246b60c028e9ade5f81a4c500fa2c1.jpg
    7. 7

      別的需要注重的是promise的set_value只能設置一次,而且凡是promise與future配對利用

      fcfaaf51f3deb48f9a67fa07fe1f3a292cf578d8.jpg
    8. 8

      若是promise的set_value設置兩次,就會呈現如下圖所示的錯誤,然后程序退出

      7a899e510fb30f2429ddb7dac695d143ac4b03a7.jpg
    • 發表于 2019-08-11 21:45
    • 閱讀 ( 650 )
    • 分類:其他類型

    你可能感興趣的文章

    相關問題

    0 條評論

    請先 登錄 后評論
    admin
    admin

    0 篇文章

    作家榜 ?

    1. xiaonan123 189 文章
    2. 湯依妹兒 97 文章
    3. luogf229 46 文章
    4. jy02406749 45 文章
    5. 小凡 34 文章
    6. Daisy萌 32 文章
    7. 我的QQ3117863681 24 文章
    8. 華志健 23 文章

    推薦文章

    聯系我們:uytrv@hotmail.com 問答工具
  • <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>
    久久久久精品国产麻豆