El "retraso aceptable" depende completamente de su aplicación. Tratar con todo en el mismo hilo puede ayudar si tienes requisitos de latencia muy estrictos. Afortunadamente, la mayoría de las aplicaciones no tienen requisitos tan estrictos.
Por supuesto, si sólo un hilo es capaz de recibir solicitudes, basta con cerrar ese hilo para el cálculo de la respuesta, eso significará que ya no puede aceptar otras peticiones. Dependiendo de lo que esté haciendo, puede usar IO asíncrono (etc.) para evitar el modelo de "subprocesos por solicitud", pero es significativamente más difícil de OMI, y todavía termina con el cambio de contexto de subprocesos.
A veces es conveniente cola de solicitudes para evitar tener demasiados hilos procesándolas: si su manejo está vinculado a la CPU, no tiene mucho sentido tener cientos de subprocesos, es mejor tener una cola de tareas de productor/consumidor y distribuirlos en aproximadamente un hilo por núcleo. Eso es básicamente lo que hará ThreadPoolExecutor
si lo configura correctamente, por supuesto. Eso no funciona tan bien si sus solicitudes pasan mucho tiempo esperando servicios externos (incluidos discos, pero principalmente otros servicios de red) ... en ese punto, o bien necesita utilizar modelos de ejecución asíncrona siempre que sea posible que haga un núcleo inactivo con una llamada de bloqueo, o toma el cambio de contexto de subproceso y tiene muchos subprocesos, confiando en el programador de subprocesos para que funcione lo suficientemente bien.
La conclusión es que los requisitos de latencia pueden ser difíciles: según mi experiencia, son mucho más estrictos que los requisitos de rendimiento, ya que son mucho más difíciles de escalar. Sin embargo, realmente depende del contexto.
No creo que la mejor manera sea crear un nuevo hilo para cada evento entrante. Preferiría tener un threadpool fijo (quizás incluso escalado) que procese los eventos entrantes que se ponen en una lista por uno o más hilos oyentes – RecursiveExceptionException
"... un nuevo hilo para cada evento entrante es la mejor manera" - ¿dónde lo hizo? ves esto en mi publicación, mientras escribía: "... round robin pool of threads"? – Dewfy
Oh. Lo leí mal Solo vi "eliminar hilo" y pensé: "Sí, eso no es bueno": p – RecursiveExceptionException