É seguro para um servlet Java gerar threads para satisfazer uma solicitação?

É seguro para o meu servidor Web Java (Tomcat 8) gerar threads em resposta a uma solicitação HTTP? Estou vendo posts e fóruns em que algumas pessoas dizem que éabsolutamente beme outros dizemnão fazer isso.

Meu caso de uso seria algo como isto:

 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
 }

Quando digo seguro, quero dizer que há algo inerentemente perigoso sobre o que estou propondo com relação à estabilidade do servidor da web. Como o @Burrman aponta, um pool de threads é uma boa ideia aqui, e eu farei isso. Se eu estiver usando um pool de encadeamentos, existem outros problemas em potencial com o contêiner de servlet que eu deveria me preocupar ou precisar resolver?

Suponho que estou pensando em, por exemplo, conexões JDBC. Acredito que é recomendável configurá-lo usando o recurso JNDI etc. e configurá-lo com a configuração do Tomcat. É algo necessário ou recomendado para gerar threads arbitrários como no meu exemplo?

questionAnswers(5)

yourAnswerToTheQuestion