¿Cómo se asignan los hilos para manejar la solicitud de Servlet?


¿Puede alguien explicar qué es el hilo por solicitud y el hilo por conexión? ¿En qué modelo trabajan 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 mucho tiempo en mi método Servlet's doGet() asincrónicamente, inicio un nuevo hilo usando ejecutores Java para que los cálculos largos se hagan en un hilo separado y la respuesta se envíe de inmediato.

Ahora eso asegura que tengo liberó el subproceso que había estado procesando mi HttpServletRequest o todavía se está utilizando porque un subproceso hijo todavía se está ejecutando?

Author: tmarwen, 2011-09-17

1 answers

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

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 termine mientras el otro hilo continúa funcionando. En su escenario, el uso de un hilo diferente para hacer el trabajo requerido por una solicitud, como es de esperar, permitirá que la respuesta se envíe de inmediato. El hilo utilizado para servir esa solicitud también estará inmediatamente disponible para otra solicitud, independientemente de cuánto tiempo tarda tu otro hilo en completarse. Esta es más o menos la forma de hacer trabajo asíncrono en un contenedor de servlet de hilo por solicitud.

Advertencia: Si estás en un contenedor Java EE completo, los hilos pueden ser administrados para ti de una manera que hace que sea una mala idea generar los tuyos. En ese caso, es mejor pedirle al contenedor un hilo, pero los principios generales son los mismos.

 51
Author: Ryan Stewart,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-27 19:23:55