java - tener - que son los hilos de un procesador
¿Qué son los hilos de trabajo y cuál es su papel en el patrón del reactor? (2)
El en.wikipedia.org/wiki/Reactor_pattern se usa con subprocesos de trabajo para superar un escenario común en las aplicaciones: necesita hacer mucho trabajo eventualmente pero no sabe qué trabajo y cuándo y crear subprocesos es una operación costosa.
La idea es que crees muchos hilos que no hacen nada al principio. En cambio, ellos "esperan el trabajo". Cuando llega el trabajo (en forma de código), algún tipo de servicio ejecutor (el reactor) identifica los subprocesos inactivos de la agrupación y les asigna trabajo para hacer.
De esa manera, puede pagar el precio para crear todos los subprocesos una vez (y no cada vez que se debe hacer algún trabajo). Al mismo tiempo, tus hilos son genéricos; harán el trabajo que se les asigne en lugar de especializarse para hacer algo específico.
Para una implementación, mira en los grupos de subprocesos .
Estoy tratando de entender el patrón de Reactor (concurrente), pero en muchos ejemplos se trata de ''subprocesos de trabajo''. ¿Qué son los hilos de trabajo? ¿En qué se diferencian de los hilos "normales"? ¿Y cuál es su papel en el patrón del reactor?
Supongo que está hablando de algo como esta documentación en subprocesos :
La mayoría de las implementaciones de ejecutor en java.util.concurrent utilizan grupos de subprocesos, que consisten en subprocesos de trabajo . Este tipo de subproceso existe por separado de las tareas ejecutables y recuperables que ejecuta y se utiliza a menudo para ejecutar múltiples tareas.
Los subprocesos de trabajo son subprocesos normales pero existen separados de las clases Runnable
o Callable
las que trabajan. Si extiendes Thread
o construyes un Thread
con un argumento Runnable
, la tarea se Runnable
al objeto Thread
directamente.
Cuando creas un grupo de subprocesos usando Executors.newFixedThreadPool(10);
(u otros métodos similares), crea un grupo de 10 subprocesos que pueden ejecutar cualquier número de clases Runnable
o Callable
diferentes que se envíen al grupo. Debajo de las cubiertas, todavía son un Thread
más flexible debido a la forma en que están envueltos.
En términos del en.wikipedia.org/wiki/Reactor_pattern del en.wikipedia.org/wiki/Reactor_pattern , los subprocesos del controlador ejecutan diferentes tipos de eventos, que es similar. Un subproceso no está vinculado a una sola clase de evento, pero ejecutará cualquier número de eventos diferentes a medida que ocurren.