По многим причинам это не хорошая практика для использования потоков в сервлете.
java.util.Timer
походит на обертку вокруг потока. Так, разве также не безопасно использовать его? Если так, что самый безопасный путь состоит в том, чтобы запланировать задачу в сервлете?
Да, можно использовать таймеры.
Одно важное запомнить, чтобы при остановке сервлета отменить этот таймер . Если вы забудете отменить Таймер, ваше веб-приложение пострадает от утечки памяти (утечка в классе, так как Тема Таймера привязана к WebappClassLoader через его ContextClassLoader) и не может быть развернуто несколько раз.
.Да. Это совершенно безопасно. Контейнер сервлета будет заботиться о потоках для HTTP-запросов, но вы можете порождать дополнительные потоки самостоятельно, независимо от того, ограничен ли их срок жизни запросом, или дольше.
например, обычный шаблон - это порождение длинноходовой технологической нити. Запросы сервлетов ставят рабочие элементы в очередь (для внеполосной обработки), а длинный поток обработки будет обрабатывать эти рабочие элементы.
Вот статья из OReilly, подробно описывающая использование таймера в сервлетах и EJBs.
.