在C++中,std::async
函數用于創建一個異步任務,并返回一個std::future
對象,該對象可以用于獲取異步任務的結果。
std::async
函數的用法如下:
#include <iostream>
#include <future>
int foo(int x) {
return x * x;
}
int main() {
// 創建一個異步任務
std::future<int> fut = std::async(foo, 10);
// 等待異步任務完成并獲取結果
int result = fut.get();
std::cout << "Result: " << result << std::endl;
return 0;
}
在上面的例子中,std::async
函數創建了一個異步任務,該任務調用了foo
函數并傳入參數10
。通過std::future
對象fut
可以獲取異步任務的結果,最終輸出結果為100
。
需要注意的是,std::async
函數的行為取決于傳入的參數。默認情況下,std::async
函數會在后臺線程中執行異步任務,但也可以通過std::launch::deferred
參數來要求在調用std::future
的get
函數時執行任務,也可以使用std::launch::async
參數來要求在調用std::async
函數時立即執行任務。