Я не просмотрел детали кода node.js.
Но, пройдя некоторое исследование потока в node.js, я обнаружил, что у него есть единственный поток для приема соединения от нескольких клиентов.
При подключении к клиенту он запускает события подключения и прослушивает другого клиента и полностью работает в асинхронном стиле, а операция ожидания клиента запроса выполняется из пула потоков, и результат отправляется обратно в основной поток (поток, который принимает соединение) через обратный вызов.
Как и в Java NIO, ServerSocketChannel, SocketChannel можно установить в неблокирующем режиме, а с помощью селектора один поток может контролировать несколько каналов. Таким образом, используя NIO ServerSocketChannel, SocketChannel также из одного потока, соединение может управляться асинхронно для нескольких клиентов.
Итак, неблокирующий режим NIO и node.js асинхронный с одним потоком следует тому же шаблону для концепции одиночного потока? Как говорят, они выполняются на одном потоке.