2014-10-04 3 views
3

Есть ли другие причины исключения RejectedExecutionException, кроме shutdown(), вызываемого ранее в Executor (я использую singleThreadExecutor)? У меня есть отчеты о сбоях, как показано ниже. Они очень редки, и я не могу воспроизвести на своих устройствах. Мой код слишком сложный для публикации, но я не вижу, как логически возможно, что любые задачи отправляются после вызова shutdown().Каковы причины исключения RejctedExecutionException?

Есть ли другие причины, по которым здесь может быть выбрано исключение RejectedExecutionException?

java.util.concurrent.RejectedExecutionException: Задача [email protected] отклонена от [email protected] [Terminated, размер пула = 0, активных потоков = 0 , поставленные задачи = 0, завершенные задания = 9813] на java.util.concurrent.ThreadPoolExecutor $ AbortPolicy.rejectedExecution (ThreadPoolExecutor.java:1979) на java.util.concurrent.ThreadPoolExecutor.reject (ThreadPoolExecutor.java:786) на java.util.concurrent.ThreadPoolExecutor.execute (ThreadPoolExecutor.java:1307) по адресу java.util.concurrent .AbstractExecutorService.submit (AbstractExecutorService.java:81) на java.util.concurrent.Executors $ DelegatedExecutorService.submit (Executors.java:562) в com.smp.soundtouchandroid.AACFileAudioSink.write (AACFileAudioSink.java:28) на com.smp.soundtouchandroid.SoundStreamRunnable.processChunk (SoundStreamRunnable.java:469) на com.smp.soundtouchandroid.SoundStreamRunnable.processFile (SoundStreamRunnable.java:406) на com.smp.soundtouchandroid.SoundStreamRunnable. (SoundStreamRunnable.java:223) на java.lang.Thread.run (Thread.java:856)

ответ

3

См http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ThreadPoolExecutor.html

Вашего ThreadPoolExecutor является выключением, или

ThreadPoolExecutor имеет конечное число потоков, или очередь работы имеет ограниченную емкость и полно (например, LinkedBlockingQueue конечной мощности, передаваемую в ThreadPoolExecutor конструктор).

Смежные вопросы