Почему мой монитор активности показывает Node.js, используя несколько потоков?
Я открыл свой монитор активности в OSX, чтобы посмотреть, как поживает Node, и, к моему удивлению, он использует 8 потоков. Как это может быть!!?
1 ответ
Решение
Node.js является однопоточным.
Тем не менее, он построен на libuv, который обрабатывает все низкоуровневые вещи, зависящие от платформы, включая асинхронный ввод-вывод.
Теперь проблема в том, что в настоящее время не существует хорошего API для асинхронного ввода-вывода в операционных системах. Существуют разные API, но у всех есть свои проблемы.
Таким образом, для реализации межплатформенного асинхронного API, libuv эмулирует его с помощью пула потоков. Вот откуда берутся эти темы.