キューが長く、キュー内のすべての要素が複数(TCP)サーバーに送信される である必要があるc/C++プロセスがあります。シングルスレッドは動作するオプションですが、遅いです。注文を維持する必要があるマルチスレッドジョブ
マルチスレッドソリューションを実装する必要があります。私のプロセスでは、サーバの数があらかじめわかっていません。 最初のアイデアは、すべてのサーバーに1つのスレッドを作成することです。マネージャスレッドは を読み取ります。キュー内の新しい要素が宛先を検出し、宛先に一致するスレッドにディスパッチします。
重要な注意点です。ジョブは依存している可能性があります。 job_5が完了していなければjob_10を実行したくありません。注文を維持する必要があります。
まず、この問題についてご意見をお聞かせください。 2番目は、参照用にC++の実装を探しています。第3に、同様の問題を記述した書籍/情報源を探しています。
何を意味していますか?新しい接続のためのフォーク? – cateof
この問題の実際の解決策は[Asynchronous IO](http://think-async.com/)です –
私はスレッドプーリングを調べることをお勧めします。 「マルチスレッド」の概念は、一般にクライアントごとのスレッドとして認識されます。スレッドプールは、すべての時間を必要としないスレッドを取り除く効率的な方法です。 – RageD