Я пытаюсь использовать класс Java ThreadPoolexeCutor для выполнения большого количества задач с тяжелым весом с фиксированным количеством потоков. Каждая из задач имеет много мест, в течение которых она может потерпеть неудачу из -за исключений. Тем не менее, я не могу заставить его работать. < /P>
Например: < /p>
public class ThreadPoolErrors extends ThreadPoolExecutor {
public ThreadPoolErrors() {
super( 1, // core threads
1, // max threads
1, // timeout
TimeUnit.MINUTES, // timeout units
new LinkedBlockingQueue() // work queue
);
}
protected void afterExecute(Runnable r, Throwable t) {
super.afterExecute(r, t);
if(t != null) {
System.out.println("Got an error: " + t);
} else {
System.out.println("Everything's fine--situation normal!");
}
}
public static void main( String [] args) {
ThreadPoolErrors threadPool = new ThreadPoolErrors();
threadPool.submit(
new Runnable() {
public void run() {
throw new RuntimeException("Ouch! Got an error.");
}
}
);
threadPool.shutdown();
}
}
< /code>
Вывод из этой программы: «Все нормально-Обыть нормально!» Несмотря на то, что единственный запускаемый, отправленный в пул потоков, бросает исключение. Любая подсказка о том, что здесь происходит? < /P>
Спасибо! < /P>
Подробнее здесь: https://stackoverflow.com/questions/224 ... vice-tasks
Обработка исключений из задач Java executorservice ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение