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

Javascript НЕ является однопоточным!

Опубликовано 31 июля 2024 г.
Просматривать:821

НЕТ! вы не ошиблись в том, что JavaScript — это однопоточный язык. Это однопоточный язык, он имеет доступ к одному основному потоку для выполнения кода. Поэтому, когда мы говорим о синхронном программировании, мы говорим об этом одиноком потоке, выполняющем всю тяжелую работу и выполняющем наш код.
Image description

Но на самом деле движок V8 и Node.js используют библиотеку c под названием libuv, чтобы получить доступ к шести дополнительным потокам. Два из них используются для сбора мусора, а остальные — для выполнения фоновых задач, таких как асинхронное программирование.

Да. Когда мы говорим, что код является асинхронным или неблокирующим, на самом деле происходит следующее: асинхронный код передается этим дополнительным потокам с обратным вызовом, а основной поток продолжает выполнять свою работу, не блокируя остальную часть кода.

Javascript is NOT single threaded!!
Когда асинхронный код завершается, функция обратного вызова помещается в очередь событий либо с ошибкой, либо с необходимыми данными. Затем цикл событий помещает его в стек вызовов, и мы получаем результат, чтобы понять это с помощью некоторого кода. Давайте посмотрим на метод readfile модуля fs.

fs.readFile("demo.text","utf8",(err,data)=>{
    if(error){       
        return error
    }
    console.log("output",data);
})

В приведенном выше коде метод readfile передается фоновым потокам. Чтение происходит в фоновом режиме, и когда оно завершается, обратный вызов помещается в очередь событий либо с ошибкой, либо с данными.

Javascript is NOT single threaded!!

После попадания в стек вызовов выполняется обратный вызов, и на выходе остается либо ошибка, либо данные.
Спасибо за чтение. Надеюсь, я смог объяснить однопоточные средства в Javascript.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/roshankbadola/javascript-is-not-single-threaded-3b9a?1 Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

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

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

Copyright© 2022 湘ICP备2022001581号-3