私はマルチスレッドにかなり慣れていません。Javaプログラムで4つのCPUを利用しようとしているプロジェクトに取り組んでいます。私は次のようなことをしたかった
int numProcessors = Runtime.getRuntime().availableProcessors();
ExecutorService e = Executors.newFixedThreadPool(numProcessors);
これにより、CPUごとに1つのスレッドが機能することが保証されますか?スレッドを作成するとき、システムはビジーではありませんが、しばらくすると非常にビジーになります。OSはスレッドを作成するために最もビジーでないCPUを選択すると思いましたが、作成時に特にビジーなCPUがない場合、どのように機能しますか?
また、スレッドプールサービスはスレッドを再利用することになっていますが、別のCPUでより多くの可用性があることがわかった場合、スレッドを強制終了して新しいスレッドを生成しますか?