これが私のコードスニペットです。
ExecutorService executor = Executors.newFixedThreadPool(ThreadPoolSize);
while(conditionTrue)
{
ClassImplementingRunnable c = new ClassImplementingRunnable();
executor.submit(c);
}
これが行われた後
executor.shutdown();
ここで達成したいのは、スレッドプール内のすべてのスレッドが実行を終了するのを待ち、エグゼキューターをシャットダウンしたいということです。
しかし、これはここで起こっていることではないと思います。メインスレッドはシャットダウンを実行しているようで、すべてをシャットダウンするだけです。
スレッドプールのサイズが 2 になる前に、次のことを行ったところ、うまくいくように見えました。
ClassImplementingRunnable c1 = new ClassImplementingRunnable();
executor.submit(c1);
ClassImplementingRunnable c2 = new ClassImplementingRunnable();
executor.submit(c2);
Future f1 = executor.submit(c1);
Future f2 = executor.submit(c2);
while(!f1.done || !f2.done)
{}
executor.submit();
スレッドプール内のより多くのスレッドに対してこれを行うにはどうすればよいですか? ありがとう。