«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как написать действительно не блокирующие функции в node.js?

Как написать действительно не блокирующие функции в node.js?

Опубликовано в 2025-03-10
Просматривать:545

How to Write Truly Non-Blocking Functions in Node.js?

правильный способ написать не блокирующую функцию в 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; i  

Worker Threads:

Использовать функцию экспериментальных потоков работника в node.js для создания нескольких потоков в одном процессе.

Нативный код:

написать C или другие нативные экстуности кода, которые используют Asynchronous System System. Threads.

  • существующие асинхронные API: Leverse Asynchronous Operations, предоставленные основными модулями node.js, такие как файл i/o с fs.readfile, http -запросы с http.get, или database queries с mongose.connect.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3