Закрытие ExecutorService

Использование:

System.IO.File.GetAttributes(string path)

и проверяют, содержит ли возвращенный FileAttributes результат значение FileAttributes.Directory:

bool isDir = (File.GetAttributes(path) & FileAttributes.Directory)
                 == FileAttributes.Directory;
10
задан Jacques René Mesrine 16 September 2009 в 07:55
поделиться

2 ответа

Я бы сказал нет. Контейнер вызывает метод contextDestroyed в качестве уведомления о том, что контекст вот-вот будет разрушен, он не запрашивает вашего разрешения. Кроме того, Javadoc не определяет, что произойдет, если вы выберете из него исключение, поэтому результаты могут быть непредсказуемыми и / или непереносимыми.

Я бы позвонил executor.shutdownNow () внутри блока catch, чтобы принудительно завершить работу исполнителя (т.е. «у вас был шанс,

5
ответ дан 4 December 2019 в 03:16
поделиться

То, что у вас есть в образце кода (повторное прерывание текущего потока), - это именно то, что я бы порекомендовал. Что-то в Tomcat вне вашего собственного кода отправило исходное прерывание, поэтому позвольте Tomcat обработать его.

Я не знаю, что Tomcat будет делать с InterruptedException. Это не определено. Но Tomcat инициировал прерывание, а Tomcat владеет потоком, в котором работает метод contextDestroyed (...). Общий принцип из «Java Concurrency in Practice», который применяется здесь: создатель потока отвечает за обработку жизни потока - проблемы с цилиндром.

Обработка прерывания определенно является проблемой жизненного цикла.

1
ответ дан 4 December 2019 в 03:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: