JavaScript код в Node.js выполняется в одном потоке, но тяжёлые операции (I/O, сеть, диск) делегируются libuv, который использует thread pool (4 потока по умолчанию) и ОС-механизмы (epoll/kqueue). Пока один запрос ждёт ответа от базы данных, event loop обслуживает другие запросы. Поэтому Node.js отлично справляется с I/O-bound нагрузкой, но плохо с CPU-intensive задачами.
Почему Node.js называют single-threaded, но при этом он обрабатывает много запросов?
Middle
441 просмотровAFK Offer AI
Что такое Express.js и для чего он используется?