私のJavaアプリケーションは基本的にこれを行います:
- ファイルから nThread バッファを読み取ります (1 mb バイトの arryas)
- バッファを処理する nThread スレッドを作成する
- スレッドがデータを処理するのを待つ
- 処理済みデータを別のファイルに書き込む
これは、コアごとに理論上 100% の速度向上を達成する必要があるアプリケーションの 1 つですが、代わりに、情報を処理するスレッドが増えるほど、速度が遅くなります!
例:
- 1 スレッド: 4800 ミリ秒
- 2 スレッド: 10200 ミリ秒
- 3 スレッド: 13400 ミリ秒
- 4 スレッド: 18560 ミリ秒
- 等々