правильный способ написать не блокирующую функцию в node.js
не блокирующая парадигма имеет решающее значение в node.js для достижения высокой производительности. Тем не менее, может быть сложно написать действительно не блокирующие функции, которые не препятствуют прогрессу цикла событий.
понимание не блокирующего поведения
код обертки в обещании не делает его не блокирующим. Функция исполнителя обещания выполняется синхронно, что означает, что длительный код внутри него заблокирует выполнение других операций.
Пример: Обещающая функция блокировки ]
рассмотрим следующую функцию:
function longRunningFunc(val, mod) { return new Promise((resolve, reject) => { let sum = 0; for (let i = 0; i, В то время как эта функция возвращает обещание, код в исполнителе блокирует. Цикл событий будет ждать, пока этот код не завершится перед выполнением других операций. вернуть новое обещание ((Resolve, duect) => { settimeout (() => { пусть сумма = 0; для (let i = 0; i
этот код планирует продолжительный цикл для выполнения после 10-миллиметровой задержки. Однако он все еще блокирует в этот сдержанный период выполнения.
истинные не блокирующие подходы
function longRunningFunc(val, mod) { return new Promise((resolve, reject) => { setTimeout(() => { let sum = 0; for (let i = 0; iWorker Threads:
Использовать функцию экспериментальных потоков работника в node.js для создания нескольких потоков в одном процессе.
Нативный код:написать C или другие нативные экстуности кода, которые используют Asynchronous System System. Threads.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3