私はマルチスレッドプログラミングにかなり慣れていないので、次のアイデアを実装するための最良の方法についての洞察を得たいと思っていました。
今のところ私のコードはこのように機能します
単一スレッドであるため、各データを処理してデータベースに書き込むのにかかる時間で、新しいデータが入ってきてキューに入れられ、処理速度が大幅に低下します。4CPUサーバーで実行していますが、現在のセットアップでは1しか使用していません。
真ん中の部分で行われた作業を残りの3つのCPUに分けたいと思います。これをどのように行うのが最善でしょうか?新しいデータごとに新しいスレッドを作成できると思いましたが、私たちは1日のうちに数十万の新しいスレッドについて話し合っています。私が読んだところによると、それに関連するオーバーヘッドは非常に大きくなります。メモリは私にとって懸念事項なので、これらすべてのスレッドの作成がメモリを消費しすぎると、問題が発生します。新しいスレッドがビジーでないCPUを使用するというのは本当ですか、それとも同じJVMであるため、同じスレッドを使用するのでしょうか。
新しいデータごとの処理とDB書き込みは、その場合、数秒以上かかることはありません。
スレッドプールについても読んでいましたが、その考えは少し混乱していて、良い例を見つけることができません。
こんなことを考えていた
リーズナブルなデザインを考え出す際に、マルチスレッドの初心者を助けてください!前もって感謝します :-)