Blockierende Operationen laufen synchron und halten den einzigen JavaScript-Thread, bis sie fertig sind — währenddessen kann nichts anderes laufen. Nicht-blockierende Operationen starten die Arbeit, kehren sofort zurück und liefern das Ergebnis später über einen Callback, ein Promise oder ein Event, sodass der Thread frei bleibt, um anderes zu tun.
Warum Node einthreadig und dennoch nicht-blockierend ist
Dein JavaScript läuft auf Thread, der von der gesteuert wird. I/O (Dateien, Netzwerk, DNS) wird an delegiert, das unter der Haube die asynchronen Mechanismen des Betriebssystems und einen kleinen nutzt. Während diese Arbeit außerhalb des Threads geschieht, verarbeitet die Event Loop weiter andere Callbacks. Wenn die I/O abgeschlossen ist, wird ihr Callback in die Warteschlange gestellt und ausgeführt.
