Является ли Node.js однопоточным?
Вопрос проверяет понимание многопоточности и модели работы Node.js.
Короткий ответ
Да, Node.js однопоточный. Он использует один поток для выполнения JavaScript-кода, но благодаря Event Loop и libuv может управлять асинхронными задачами (сетевые запросы, файловые операции) вне основного потока.
Длинный ответ
Node.js запускает JavaScript-код в одном потоке (однопоточная модель). Однако для асинхронных операций Node.js использует libuv, библиотеку для управления потоками.
Например, когда выполняется I/O-задача (чтение файла), она отправляется в пул потоков, а Event Loop продолжает работать, ожидая результаты. Это позволяет обрабатывать тысячи запросов одновременно.