std::launch

出自cppreference.com
 
 
並發支持庫
線程
(C++11)
(C++20)
this_thread 命名空間
(C++11)
(C++11)
(C++11)
協作式取消
互斥
(C++11)
通用鎖管理
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
條件變量
(C++11)
信號量
閂與屏障
(C++20)
(C++20)
未來體
(C++11)
(C++11)
(C++11)
(C++11)
安全回收
(C++26)
風險指針
原子類型
(C++11)
(C++20)
原子類型的初始化
(C++11)(C++20 棄用)
(C++11)(C++20 棄用)
內存定序
(C++11)(C++26 棄用)
原子操作的自由函數
原子標誌的自由函數
 
在標頭 <future> 定義
enum class launch : /* 未指定 */ {
    async =    /* 未指定 */,
    deferred = /* 未指定 */,
    /* 由实现定义 */
};
(C++11 起)

std::launch 是一個位掩碼類型 (BitmaskType) 。它指定 std::async 所執行的任務的啟動策略。

常量

標準庫定義下列代表單獨位的常量:

枚舉項 含義
async 在不同線程上執行任務,可能要首先創建並啟動它
deferred 調用方線程上首次請求其結果時執行任務(惰性求值)

另外,實現也可以:

  • 定義額外的位和位掩碼,以指定可應用於運行策略子集的任務交互上的限制,並
  • std::async 的首個(默認)重載啟用這些額外位掩碼。

缺陷報告

下列更改行為的缺陷報告追溯地應用於以前出版的 C++ 標準。

缺陷報告 應用於 出版時的行為 正確行為
LWG 2102 C++11 std::launch 是由實現定義的類型 它不由實現定義

參閱

(C++11)
異步運行一個函數(有可能在新線程中執行),並返回將保有它的結果的 std::future
(函數模板) [編輯]