Безопасно ли для сервлета Java порождать потоки для удовлетворения запроса?
Безопасно ли для моего веб-сервера Java (Tomcat 8) создавать потоки в ответ на HTTP-запрос? Я вижу сообщения и форумы, где некоторые люди говорят, что этоабсолютно нормальнои другие говорятне делать этого.
Мой вариант использования будет примерно таким:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
...
...
final MyResult res = new MyResult();
Thread first = new Thread(new Runnable() {
@Override
public void run() {
// put this into res
}
});
Thread second = new Thread(new Runnable() {
@Override
public void run() {
// put that into res
}
});
first.start();
second.start();
first.join(10000);
second.join(10000);
// return res
}
Когда я говорю «безопасный», я имею в виду, есть ли что-то изначально опасное в том, что я предлагаю в отношении стабильности веб-сервера. Как указывает @Burrman, пул потоков здесь хорошая идея, и я сделаю это. Если я использую пул потоков, существуют ли какие-либо другие потенциальные проблемы с контейнером сервлета, о которых я должен беспокоиться или которые необходимо решить?
Я полагаю, что я думаю о соединениях JDBC. Я считаю, что рекомендуется настроить это с помощью ресурса JNDI и т. Д. И настроить его с помощью конфигурации Tomcat. Является ли что-то подобное необходимым или рекомендуемым для создания произвольных потоков, как в моем примере?