Senior
Node.js es una aplicación de un solo hilo. ¿Cómo maneja múltiples solicitudes simultáneas?
sobes.tech AI
Respuesta de la IA
Node.js работает на однопоточном Event Loop, который позволяет эффективно обрабатывать множество одновременных запросов без создания новых потоков для каждого.
Основные механизмы:
- Асинхронные операции ввода-вывода (I/O) не блокируют Event Loop. Например, чтение файлов, запросы к базе данных, сетевые операции выполняются в фоне.
- Когда операция завершается, вызывается callback или промис, и Event Loop продолжает обработку.
Таким образом, Node.js не создаёт новый поток на каждый запрос, а использует неблокирующий асинхронный подход, что позволяет обслуживать тысячи одновременных соединений с минимальными накладными расходами.
Пример:
const http = require('http');
const server = http.createServer((req, res) => {
// Асинхронная операция, например чтение из базы
someAsyncOperation().then(data => {
res.end(data);
});
});
server.listen(3000);
Здесь сервер не блокируется на время операции, а продолжает принимать новые запросы.