Да, это правда, что Node.js обрабатывает все запросы в одном потоке. Но это всего лишь часть теории дизайна Node.js. Фактически, он использует не только однопоточный механизм, но и события и обратные вызовы для обработки больших объемов данных. запросов асинхронно.
Более того, Node.js имеет оптимизированный дизайн, в котором используются как JavaScript, так и C++, что гарантирует максимальную производительность. JavaScript выполняется на стороне сервера с помощью движка Google Chrome v8. А UV-библиотека C++ lib заботится о непоследовательном вводе-выводе через фоновых работников.
Чтобы объяснить это практически, предположим, что в очереди Node.js стоят сотни запросов. Согласно задумке, основной поток цикла событий Node.js получит все из них и передаст их фоновым работникам для выполнения. Как только рабочие завершают обработку запросов, зарегистрированные обратные вызовы получают уведомление в потоке цикла событий, чтобы передать результат обратно пользователю.
Итог
Key takeaway for interview: Is Node.js entirely based on a single-thread?