Почему мой монитор активности показывает Node.js, используя несколько потоков?

Я открыл свой монитор активности в OSX, чтобы посмотреть, как поживает Node, и, к моему удивлению, он использует 8 потоков. Как это может быть!!?

Узел с 8 потоками

1 ответ

Решение

Node.js является однопоточным.

Тем не менее, он построен на libuv, который обрабатывает все низкоуровневые вещи, зависящие от платформы, включая асинхронный ввод-вывод.

Теперь проблема в том, что в настоящее время не существует хорошего API для асинхронного ввода-вывода в операционных системах. Существуют разные API, но у всех есть свои проблемы.

Таким образом, для реализации межплатформенного асинхронного API, libuv эмулирует его с помощью пула потоков. Вот откуда берутся эти темы.

Другие вопросы по тегам