@kodwi
https://moikrug.ru/kodwi

Как понять принцип асинхронности Node.js?

Изучаю ноду. Как я понял, само приложение пашет в одном потоке. При этом для асинхронности свой код надо пулять в event loop с помощью nextTick.

Допустим, есть 7 функций разного назначения, все они делают более менее времязатратную работу. Код в основном потоке использует все эти функции через nextTick. Допустим, подключилось 5 клиентов разом, т.е. в event loop'e 7*5 = 35 задач в очереди.

Короче вопрос - event loop также исполняется в одном отдельном потоке? Если да, то откуда будет прирост производительности сервера и уменьшение времени отклика на запросы, если в loop'e все также последовательно? Объясните пожалуйста.
  • Вопрос задан
  • 2382 просмотра
Решения вопроса 1
SPAHI4
@SPAHI4
реактовцы - это не девы, а прокидыватели пропсов
Старое уже видео, но всё понятно
https://youtu.be/w4EHA9xqoNw
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
SagePtr
@SagePtr
Еда - это святое
Засчёт того, что потоки могут выполнять другие асинхронные операции - например, запросить содержимое файла и уснуть, пока дисковая подсистема им не отдаст этот файл и не дёрнет callback. За это время будет выполнен следующий поток из цикла событий.
А если же внутрь этих потоков пихать синхронные функции - то никакого прироста производительности и не будет.
Ответ написан
inkluter
@inkluter
Frontend developer
Тоже старое видео, но не менее актуально.
https://www.youtube.com/watch?v=8aGhZQkoFbQ
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы