C++でのasyncの使い方は何ですか。
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関数を呼び出すときに即座にタスクを実行するように要求することもできます。