tag que ejemplo custom java multithreading java-ee servlets threadpool

que - tag jsp java



¿Cómo se asignan los subprocesos para manejar la solicitud del servlet? (1)

¿Alguien puede explicar qué es el hilo por solicitud y el hilo por conexión? ¿En qué modelo funcionan los servlets? ¿Cómo se asignan los hilos para manejar las solicitudes HTTP? ¿Es hilo / solicitud o conexión?

Y digamos que si quiero realizar una tarea que consume tiempo en el método doGet() mi Servlet forma asíncrona, comienzo un nuevo hilo con ejecutores Java para que los cálculos largos se realicen en un hilo separado y la respuesta se envíe de inmediato.

Ahora, ¿eso asegura que he liberado el hilo que había estado procesando mi HttpServletRequest o todavía se está utilizando porque un hilo hijo aún se está ejecutando?


Por solicitud significa cuando se realiza una solicitud HTTP, se crea un subproceso o se recupera de un grupo para servirlo. Un hilo sirve toda la solicitud. El hilo por conexión sería lo mismo, excepto que el hilo se utiliza para una conexión completa, que podría ser solicitudes múltiples y también podría tener un montón de tiempo muerto entre las solicitudes. Los contenedores de servlets son hilos por pedido. Puede haber algunas implementaciones que ofrecen hilo por conexión, pero no sé, y parece que sería un desperdicio.

Crear un hilo dentro de otro hilo no establece ninguna relación especial, y el objetivo de hacerlo en la mayoría de los casos es dejar que un hilo haga más trabajo o terminar mientras el otro hilo continúa funcionando. En su escenario, usar un hilo diferente para hacer el trabajo requerido por una solicitud permitirá, como espera, permitir que la respuesta se envíe de inmediato. El hilo utilizado para atender esa solicitud también estará disponible de inmediato para otra solicitud, independientemente de cuánto tiempo tarde en completarse su otro hilo. Esta es más o menos la forma de hacer un trabajo asíncrono en un contenedor de servlets hilo por solicitud.

Advertencia: si está en un contenedor completo de Java EE, los hilos pueden administrarse de una manera que hace que sea una mala idea generar el suyo. En ese caso, es mejor pedirle al contenedor un hilo, pero los principios generales son los mismos.