2

を使用し ていますが、これでスレッドプールのシャットダウンが処理されるかどうか疑問com.google.common.util.concurrent.SimpleTimeLimiterに思っていますか?
noargs constructor を使用してこれを構築 new SimpleTimeLimiter()していますが、これは を呼び出す方法を提供しませんshutdown()

4

1 に答える 1

2

ExecutorService.shutdown()の JavaDoc に注目してください。

以前に送信されたタスクが実行される正常なシャットダウンを開始しますが、新しいタスクは受け入れられません。すでにシャットダウンされている場合、呼び出しによる追加の効果はありません。

バッキングExecutorService.submit(callable)は の中で ONCE と呼ばれSimpleTimeLimiterます。他の新しいタスクはこれ以上サブミットされないため、shutdown()必要ありません。

しかし、コンストラクターを使用する場合はSimpleTimeLimiter(ExecutorService executor)、責任を負う必要がありshutdown()ます。

于 2013-03-07T07:26:30.847 に答える