C++マルチスレッド高同時,thread()とasync()の違い

1695 ワード

std::thread , std::async(std::launch::async,mehtodName) ですが、std::async()はスレッドを作成するのではなく、非同期タスクを作成します.asyncは新しいスレッドを作成しない場合があります.
  • 1)std::launch::deferred,遅延呼び出し,getを用いる場合に行うが,新しいスレッド
  • は作成されていない.
  • 2)std::launch::asyncを使用すると、新しいスレッド
  • が作成されます.
  • 3)std::launch::async|std::launch::defferredを使用する場合、システムはどの
  • を使用するかを自分で決定します.
  • 4)追加のパラメータが適用されない場合、効果のデフォルトは3)です. 100~200
    質問:
    どのようにstd::future myFuture=std::async(threadEntryFunc 2)を解決して、このような書き方はいったい実行を延期したことがありますか? future wait_for , 0 , std::future_status , , , C++マルチスレッド高同時future_status,std::shared_future(std::futureは1回しかgetできない問題)
    std::future_status<int> myStatus = myFuture.wait_for(std::chrono::milesconds(0));
    //    status  ,
    std::future_status::deferred,future_status::timeout,future_status::ready