1

Executors.newFixedThreadPoolはスレッド プールを生成するために使用し、ジョブ キューが空でスレッドが動作していないときにシャットダウンしたいと考えています。どうすればいいですか?

4

1 に答える 1

4

まず、既に送信されたすべてのタスクを終了させながら、新しいタスクを許可しないようにしながら、プールをシャットダウンする必要があります。次に、キューが空になり、すべてのタスクが完了するまでブロックできます。

pool.shutdown();
pool.awaitTermination(1, TimeUnit.HOUR);

ExecutorService.shutdown():

以前に送信されたタスクは実行されますが、新しいタスクは受け入れられません

ExecutorService.awaitTermination():

シャットダウン要求後、すべてのタスクが実行を完了するまでブロックします

于 2012-07-21T17:31:32.250 に答える