Я использую ThreadPoolExecutor, с парой сообщений, обеспечивающих потоки, подающие в него сообщения для обработки. Каждый поток проверяет глубину исполнителя перед отправкой. Если глубина превышает определенный порог, то поток будет ждать определенное время и проверять снова. Она будет отправлена только тогда, когда найдет глубину ниже порога. Поэтому я не думаю, что исполнитель взорвется от слишком большого количества сообщений. Тем не менее, я все еще хотел бы знать, какие исключения мне нужно искать. Я нашел только из API "RejectedExecutionException", которые могут прийти от исполнителя:
Новые задачи, представленные в методе execute (java.lang.Runnable), будут отклонены, когда исполнитель будет закрыт, а также когда исполнитель использует конечные границы как для максимальных потоков, так и для емкости рабочей очереди, и насыщается.
Является ли RejectedExecutionException единственным исключением, которое мне нужно искать в журналах? Кто-нибудь сталкивался с ситуацией, когда исполнитель попадает в состояние неопределенности? Что происходит в этой ситуации? Мы все еще увидим RejectedExecutionException? Возможны ли другие исключения? Большое спасибо!