私はシミュレーションシステムに取り組んでおり、各タイムステップで多くのモデルをシミュレートする必要があります。FixedThreadPoolを使用して、計算を高速化しました。
ExecutorService executor = Executors.newFixedThreadPool(nThread);
for (Model m : models) {
executor.execute( m.simulationTask() );
}
executor.shutdown();
while ( ! executor.awaitTermination(10, TimeUnit.MINUTES) ) {
System.out.println("wait");
}
execute()
現在、を呼び出した後、エグゼキュータを新しいタスクに使用することはできませんshutdown()
。エグゼキュータをリセットして、次のシミュレーションステップで既存のエグゼキュータ(およびそのスレッド)を再利用できるようにする方法はありますか?