私は自分のアプリケーションをより応答性が高く、より機敏にしたいと考えています。非同期アプローチに興味がありますが、私が知っていることから、C++ はいかなる種類の非同期アプローチもサポートしていません: これは本当ですか?
編集:これについていくつかの良いライブラリの名前を付けていただければ幸いです。
私は自分のアプリケーションをより応答性が高く、より機敏にしたいと考えています。非同期アプローチに興味がありますが、私が知っていることから、C++ はいかなる種類の非同期アプローチもサポートしていません: これは本当ですか?
編集:これについていくつかの良いライブラリの名前を付けていただければ幸いです。
それは本当ですが、完全ではありません.C++言語自体には非同期メカニズムはありませんが、たとえば、言語の上に非同期レイヤーをライブラリとして構築できます。http://www.boost.org/doc/libs/1_35_0/doc/html/boost_asio/design/async.html
スレッドが必要な場合、C++11 はネイティブ サポートを提供します: http://en.wikipedia.org/wiki/C%2B%2B11#Threading_facilities
Boost はテンプレート メタプログラミングを多用するため、ハードコアなメタプログラミングに備える必要があります。
標準 C++11 には、マルチスレッド化と同時実行のための低レベルのビルディング ブロック ( <thread>
) と、タスク レベルの並列処理と非同期性のための高レベルの抽象化 (非同期タスクの起動<future>
を含む) があります。std::async
必ずしもスレッドを必要としない非同期操作へのより一般的なアプローチについては、Boost.Asioを参照することをお勧めします。