Operacje blokujące (blocking) działają synchronicznie i zajmują jedyny wątek JavaScript aż do zakończenia — w międzyczasie nic innego nie może się wykonać. Operacje nieblokujące (non-blocking) rozpoczynają pracę, natychmiast zwracają sterowanie i dostarczają wynik później przez callback, Promise lub zdarzenie, więc wątek pozostaje wolny do wykonywania innych rzeczy.
Dlaczego Node jest jednowątkowy, a mimo to nieblokujący
Twój JavaScript działa na wątku napędzanym przez (event loop). I/O (pliki, sieć, DNS) jest delegowane do , które pod spodem korzysta z asynchronicznych mechanizmów systemu operacyjnego i niewielkiej (thread pool). Podczas gdy ta praca odbywa się poza wątkiem, pętla zdarzeń dalej przetwarza inne callbacki. Gdy I/O się kończy, jego callback trafia do kolejki i zostaje uruchomiony.
