0

マイクロプロセッサが同じスレッドで同時操作を実行する方法、ハイパースレッディングを利用する方法、キャッシュを制御する方法、OS の機能について十分に理解していないため、複数のスレッドを使用した Java の同時実行の詳細についてはあまり詳しくありません。スレッドなどを利用するには...

自分自身に情報を提供するためにかなりの量の調査を行いましたが、コードを最適化する方法をまだよく理解していません。

具体的には、ネットワーク接続から入力を取得し、データをファイルに書き込み、複雑な数学演算 (最も負担が大きいのは多項式回帰) を同時に実行できる必要があります。これには、1.0e32 を超える数十の数値を処理する必要があります。そして、これを数秒以内に数千回実行する必要があります。

では、アプリケーションがサーバーまたは一般的なデスクトップから実行される可能性があると仮定すると、これらの要素の同時実行性にアプローチするにはどうすればよいでしょうか? 質問があいまいすぎる場合は、Java でのマルチプロセッシングを理解するための正しい方向に私を向けることができる人も大歓迎です。

4

1 に答える 1

0

マルチスレッド モデルは、アプリケーションによって異なります。ネットワーク接続が非常に速い速度でデータを送信し続けているようなものですか? 接続を介して受信したデータムごとに複雑な計算を行っていますか? 計算は互いに独立しているか、または個々の処理後に累積できますか? これらすべての質問に対する答えが「はい」の場合、適切なモデルは、ソケット リーダー スレッドにネットワークからキューにデータを書き込み、複数のスレッドがこのキューから読み取り、読み取ったデータに対する操作を計算することです。 . この概念は、スレッド プールと呼ばれます。

于 2013-07-26T05:40:56.560 に答える