Что произойдет при десяти подключениях к серверу Node.js

Ответ

Node.js использует однопоточную модель с циклом событий (event loop), но обрабатывает асинхронные операции эффективно через механизмы вроде libuv. При 10 подключениях:

  1. Каждое соединение регистрируется в event loop как событие
  2. I/O операции (запросы к БД, файлам и т.д.) выполняются асинхронно в worker threads
  3. Пока один запрос ждет ответа (например, от БД), event loop обрабатывает другие

Пример простого сервера:

const http = require('http');
http.createServer((req, res) => {
  // Асинхронная операция
  setTimeout(() => {
    res.end('Response');
  }, 100);
}).listen(3000);

10 клиентов смогут подключиться одновременно - Node.js будет обрабатывать их параллельно благодаря неблокирующей природе. Пропускная способность зависит от:

  • Нагрузки CPU (синхронные операции блокируют event loop)
  • Количества параллельных I/O операций
  • Конфигурации сервера