Aunque la pregunta ya se ha explicado antes de mucho tiempo, estoy pensando lo mismo.
Node JS es una tecnología de rosca única. Básicamente, la preocupación del creador de Nodo JS (Ryan Dahl) era que el procesamiento paralelo usando múltiples hilos no es el camino correcto o demasiado complicado.
si Node.js no utiliza hilos ¿cómo manejar las solicitudes simultáneas en paralelo
Respuesta: Es frase completamente equivocado cuando dice que no utiliza hilos, hilos de nodo Js uso, pero de una manera inteligente. Se utiliza un solo hilo para servir a todo el HTTP solicita & múltiples hilos en grupo de subprocesos (en libuv) para la manipulación de cualquier operación de bloqueo
Libuv: Una biblioteca para manejar asíncrono I/O.
¿Qué significa el modelo de E/S de evento?
Resp: El término correcto es E/S sin bloqueo. Casi nunca se bloquea como dice el sitio oficial de Node JS. Cuando cualquier solicitud va al servidor de nodo, nunca pone en cola la solicitud. Solicita y comienza a ejecutar si está bloqueando la operación y luego se envía al área de trabajo y registra una devolución de llamada tan pronto como finaliza la ejecución del código, activa la misma devolución de llamada y va a la cola de eventos y se procesa nuevamente por evento. que crean respuesta y la envían al cliente respectivo.
Enlace de interés: click here
Gracias Michael. Entiendo que las operaciones async IO son la naturaleza de JS, pero lo que no entiendo es que si node.js/JS tiene un solo subproceso, ¿cómo maneja las operaciones asincrónicas? Puede ejecutar una operación de E/S asíncrona en paralelo con el código del lado del servidor, pero cómo. – Davita
@Davita: las operaciones de E/S no las realiza la CPU. El código del lado del servidor no tiene que involucrarse hasta que el hardware externo haya llenado algún buffer y le dice a la CPU sobre esto a través de un mecanismo de interrupción. –
@Davita hay un pequeño informe sobre el ciclo de eventos node.js aquí: http://blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop/ – LoG