私はしばらくの間ナットを運転している問題を抱えており、あなたの集団知恵に相談する必要があります。RejectedExecutionExceptionでも、ExecutorServiceがisShutdown()によって保護されている場合でも、
私は、Executors.newFixedThreadPoolから呼び出された1のプールを持つThreadPoolExecutorを持っています。 executor.shutdown()は別のスレッドから呼び出されているので、executor.execute()は!isShutdown()でガードされているので、エグゼキュータがRejectedExecutionExceptionをスローしないと言うことができます。それにもかかわらず、これは私がランダムに見ているものです。
誰もがこの動作を見ている理由を知っていますか?
javadocsから、newFixedThreadPoolは、共有された無制限キューを操作する固定数のスレッドを再利用するスレッドプールを作成します。したがって、この問題は発生しません。 – Hwee
私の悪いです。私はあなたが固定スレッドプールを使用することを忘れてしまった。私が考えることができる他のものは、スレッドプールがチェックの後、タスクが提出される前にシャットダウンとマークされているときのいくつかの並行性の問題です。あなたは周りに同期することができますか? –
それは残っている唯一の説明のようですね。提案ありがとう:) – Hwee