同期モデルでは、クライアントがサーバに接続すると、クライアントとサーバの両方を同期させていくつかの操作を完了させる必要があります。Webサーバのプロクタパターンと同期モデルの違い
一方、非同期モデルでは、クライアントとサーバーを分離して独立して動作させることができます。クライアントは、接続の確立と何かを行う要求を送信します。サーバーが要求を処理している間、クライアントは別の処理を実行できます。操作が完了すると、完了イベントはイベントデマルチプレクサのキューに置かれ、Proactor(HTTPハンドラなど)がリクエストを送り返して完了ハンドラ(クライアント上)を呼び出すのを待ちます。これらの用語は、boost :: asio文書The Proactor Design Pattern: Concurrency Without Threadsのように使用されます。
このように動作させることで、非同期モデルは接続ごとにスレッドを作成せずに同時接続を受け付けることができ、全体的なパフォーマンスが向上します。非同期モデルと同じ効果を得るには、最初のモデル(同期)がマルチスレッドでなければなりません。詳細は、Proactor Patternを参照してください(実際には、その文書の非同期モデルに使用されているプロクタパターンを学習しています。ここでは、一般的な同期I/O Webサーバーの説明があります)。
私の理解は正しいですか?その場合、非同期サーバーは要求を受け入れて非同期で結果を返すことができます(最初の接続要求では、Webサーバー上のサービスは最初に応答する必要はありません)。本質的に、非同期モデルはスレッドを使用しません(または、Proactor、Asynchronous Event Multiplexer(boost :: asioドキュメント)コンポーネントなどの個々のコンポーネントでスレッドを使用します)。クライアント/サーバーアプリケーションスタック全体を作成するのではなく、 Proactor Patternドキュメントのマルチスレッドモデル、セクション2.2 - 一般的な同時実行モデルの一般的なトラップと落とし穴)。
あなたが求めていることは私には分かりません。 –