Saltar al contenido

¿Node.js admite el paralelismo?

Queremos enseñarte la mejor solución que descubrimos on line. Nosotros esperamos que te resulte de mucha utilidad y si puedes compartir algo que nos pueda ayudar a mejorar hazlo libremente.

Solución:

El nodo puede admitir “Paralelismo” a través del Cluster o child_process módulos empaquetados en la API principal de Nodejs. Ambos módulos crean procesos adicionales y no subprocesos adicionales.

Los subprocesos se crean y administran, a veces en un grupo, “bajo el capó” por libuv cual node implementa y utiliza para realizar operaciones asincrónicas, como leer de un archivo. No puede crear explícitamente un hilo desde su ejecución de Javascript. Puedes leer más sobre libuv en los siguientes recursos

  • libuv Documentos API
  • libuv libro
  • Enhebrar libuv (parte de libuv libro)

Además, esta es una gran pregunta sobre Threads and Pooling que tiene muchos detalles.

Cluster se utiliza para distribuir la carga de trabajo de un servidor en varios núcleos y aún así compartir un puerto. Sin embargo, Cluster usos child_process.fork() bajo el capó y se comunica a través de la comunicación entre procesos. Puedes leer más sobre Cluster en los documentos de la API principal de Nodejs.

child_process ofrece un par de formas diferentes de paralelizar el trabajo a través de exec(), spawn() o fork(). El proceso principal puede comunicarse con el proceso secundario mediante la comunicación entre procesos a través de conductos.

Básicamente, Node quiere que aproveche el bucle de eventos y deje la gestión de subprocesos a libuv. Esta es la razón por la que es tan fácil crear código que normalmente requeriría medidas de bloqueo y seguridad de subprocesos. Si debe realizar un trabajo que requiere levantar objetos pesados ​​o una cantidad significativa de trabajo de bloqueo (sincrónico), entonces podría usar child_process para descargar ese trabajo. Si necesita escalar horizontalmente una aplicación web entre núcleos, use Cluster.

Si para ti ha sido de provecho nuestro artículo, agradeceríamos que lo compartas con otros juniors y nos ayudes a difundir este contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *