std::async基本用法


std::async基本用法

參考:

https://www.cnblogs.com/moodlxs/p/10111601.html

https://www.yht7.com/news/29953

std::async的啟動策略類型是個枚舉類enum class launch,包括:

std::launch::deferred:表示入口函數調用被延遲到std::future的wait或get才執行,如果沒調用wait和get,線程則不會創建,即便是調用了get和wait也不會創建新新線程,函數的調用是主線程調用的

std::launch::async:在調用async的時候就創建新線程,系統默認傳的參數

注意:

  • std::future::get只能調用一次,多次調用會返回異常
  • 主線程使用std::future::get獲取結果,如果調用過程中,任務尚未完成,則主線程阻塞至任務完成
  • std::launch::deferred|std::launch::async這種組合沒有實際起作用,輸入這樣的參數,起作用的只有std::launch::async


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM