Una de las grandes bondades de Node es el Event Loop, el proceso que se encarga de recibir las peticiones, meterlas en una cola para su ejecución, mantener el control de los callbacks y despacharlas, esto ocupando un solo thread, de una manera muy eficiente.
El mejor ejemplo que he utilizado para explicar el event loop y la programación asíncrona, es el siguiente código:
console.log('Iniciando app');
setTimeout(() => {
console.log('Primer callback');
}, 2000);
setTimeout(() => {
console.log('Segundo callback');
}, 1000);
console.log('Fin');
En el código vemos 4 instrucciones, un log al iniciar la app, un log que se imprime después de dos segundos, otro log que se imprime después de un segundo y por último otro log final.
En la programación que estamos acostumbrados a utilizar el orden de la impresión de logs sería la siguiente:
Iniciando app
Primer callback (después de esperar 2 segundos)
Segundo callback (después de esperar 1 segundo)
Fin
Pero en Node el eventloop se va encargando de ir despachando los eventos que vayan terminando, por lo que la salida del log sería
Iniciando app
Fin
Segundo callback
Primer callback
Otro punto importante es que en una aplicación tradicional el tiempo completo de ejecución hubiera sido de 3.x segundos mientras que con Node.js el tiempo sería de 2.x segundos al ejecutarlo.
Tal como mencionabamos las aplicanciones Node se ejecutan sobre un único thread, en ese thread el Event Loop que es manejado por una librería llamada Libuv, crea por default un thread pool con 4 threads para manejar el trabajo asíncrono, pero los sistemas operativos proveen interfaces asíncronas para varios tipos de tareas de I/O, entonces cuando es posible utiliza esas interfaces para no usar el thread pool. El event loop es un proceso formado por un conjunto de fases con tareas especificas que son ejecutadas usando round-robin.
En este video, Bert Belder explica muy bien como funciona el Event Loop y todo lo que tenemos que saber al respecto
Más información
Exelente explicacion, me sirvio muchisimo.
ResponderEliminarUna explicación muy clara y aún vigente. Gracias.
ResponderEliminarsmm panel
ResponderEliminarsmm panel
is ilanlari
instagram takipçi satın al
HIRDAVATÇI BURADA
beyazesyateknikservisi.com.tr
Servis
tiktok jeton hilesi