C++,std::shared_futureの使用

1002 ワード

今日は、マルチスレッドタスクのような方法を説明します.具体的には、次のとおりです.
std::shared_future<int> tmp = std::async(p1,p2,p3);
int tmpInt = tmp.get();

1、std::futureは非常に有用で興味深いものであり、簡単にstd::futureは非同期操作結果にアクセスするメカニズムを提供している.
2、std::スレッドの作成に代わるasync;
最初のパラメータは、スレッドの作成ポリシー(1、std::launch::async:asyncを呼び出すとスレッドの作成が開始されます.2、std::launch::deferred:遅延ロード方式でスレッドが作成されます.asyncを呼び出すとfutureのgetまたはwaitが呼び出されるまでスレッドは作成されません.)
2番目のパラメータはスレッド関数です
3番目のパラメータはスレッド関数パラメータです
3、get()はスレッドが返す結果を取得するためのものです
まとめ:
複数のタスクを同時に実行する必要がありますが、順番に実行された結果が得られると、futureの用途が来ます.std::shared_を実行するとfuture tmp = std::async(std::launch::async,p2,p3);すぐにスレッドを作成してタスクを実行し、必要な場所でget()メソッドを呼び出して戻り値を取得します.実行が完了しない場合、get()は待機します.これにより、戻り値は順番に取得されます.
 
皆さんは自分の業務に従って使用していますが、質問があれば伝言を残してもいいです.
転載先:https://www.cnblogs.com/xupeidong/p/9851357.html