Node.js event loop

Christopher Kade

Sujet de BBL inspiré par un talk de James Snell à CascadiaJS 2018

@christo_kade

Pourquoi faire cette présentation?

Comprendre plus précisément le fonctionnement de Node.js

Debugger plus efficacement

On m'offre le repas :D

Deux parties:

  • Résumons l'Event Loop
  • Son architecture

Résumons l'Event Loop

L'Event Loop n'execute qu'une tâche à la fois

Event Loop

C++

Javascript

Event Loop notification

NTQ

MTQ

process.nextTick(callback)

.then()

 .catch()

 .finally()

Lorsque Javascript est en cours d'execution, l'Event Loop ne l'est pas

a.k.a l'Event Loop Delay

Son architecture

setTimeout(callback)

setInterval(callback)

Accepte de nouvelles connexions et données

Callbacks liés à la fermeture (sockets etc.)

Points importants à retirer de ce BBL

  • L'Event Loop n'execute qu'une tâche à la fois

  • Lorsque Javascript est en cours d'execution, l'Event Loop ne l'est pas (donc sur un seul thread)

  • L'Event Loop est composée de plus d'une queue (ou structure de données similaire)

Merci de votre attention !

Références:

Node.js event loop workflow & lifecycle in low level - http://voidcanvas.com/nodejs-event-loop/

Observing NodeJS - https://www.youtube.com/watch?v=V0LcfB-H0aY&t=

Made with Slides.com