Почему следует избегать выполнения ресурсоемких задач с использованием цикла событий?

#javascript #node.js

#javascript #node.js

Вопрос:

В учебном пособии я прочитал, что вам следует использовать подход цикла событий Node в основном для задач с интенсивным вводом-выводом. Например, чтение с жесткого диска или использование сети. Но не для ресурсоемкой задачи.

Какова конкретная причина приведенных утверждений?

Или другой вопрос:

Что произойдет, если вы занимаете Node.js с выполнением задач, связанных с процессором?

Комментарии:

1. Это заблокирует цикл событий, и ваше приложение перестанет реагировать.

Ответ №1:

Узел использует небольшое количество потоков для обработки многих клиентов. В Node есть два типа потоков: один цикл событий (он же основной цикл, основной поток, поток событий и т. Д.) И пул из k рабочих в рабочем пуле (он же пул потоков).

Если потоку требуется много времени для выполнения обратного вызова (цикл событий) или задачи (Worker), мы называем это «заблокированным». Пока поток заблокирован, работая от имени одного клиента, он не может обрабатывать запросы от любых других клиентов.

Вы можете прочитать больше об этом в официальном руководстве nodejs