亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
首頁 > web前端 > js教程 > 正文

Nodejs 事件循環(huán)

心靈之曲
發(fā)布: 2024-12-11 08:03:39
轉(zhuǎn)載
629人瀏覽過

大家好,
在第一篇文章中,我將寫有關(guān)事件循環(huán)(主循環(huán)、主線程、事件線程等...)的內(nèi)容,這是真正想了解 Javascript 的人思考的主題之一。我還想補(bǔ)充一點(diǎn),這篇文章將是我自己做的筆記的匯編,而不是專業(yè)的。我為我的錯(cuò)誤提前道歉。
在下圖中,您可以看到 Nodejs 中的 javascript v8 引擎、事件循環(huán)機(jī)制和 libuv 庫。 libuv 庫可以執(zhí)行一些 Javascript 無法提供的任務(wù)。如果我們?cè)跒g覽器中運(yùn)行 javascript,我們就會(huì)使用瀏覽器提供的 Web api 來運(yùn)行。

事件循環(huán)是一種架構(gòu)設(shè)計(jì)模式。這種方式之所以受到青睞,與javascript的工作原理有直接關(guān)系。 javascript 運(yùn)行單線程和非阻塞 i/o。換句話說,雖然它運(yùn)行在單線程上,但在執(zhí)行耗時(shí)任務(wù)時(shí)并沒有被阻塞,而是繼續(xù)工作。它通過事件循環(huán)架構(gòu)解決了這個(gè)問題。

當(dāng)程序運(yùn)行時(shí),全局執(zhí)行上下文被創(chuàng)建并添加到調(diào)用堆棧中。在程序流程完成之前,不會(huì)將其從調(diào)用堆棧中刪除。事實(shí)上,為每個(gè)函數(shù)創(chuàng)建了一個(gè)執(zhí)行上下文。一旦函數(shù)完成,它就會(huì)從調(diào)用堆棧中刪除。但它并不總是這樣。

在某些情況下,函數(shù)需要時(shí)間才能完成其功能。例如,網(wǎng)絡(luò)請(qǐng)求或來自文件的數(shù)據(jù)讀寫操作、DOM 事件(并非全部)。在這種情況下,該函數(shù)由線程池或Web API 處理。當(dāng)進(jìn)程完成時(shí),回調(diào)函數(shù)被添加到回調(diào)隊(duì)列(任務(wù)隊(duì)列)中。當(dāng)輪到它時(shí)(當(dāng)調(diào)用堆棧清空時(shí)),它被轉(zhuǎn)移到調(diào)用堆棧并被處理。一旦處理完畢,它就會(huì)從調(diào)用堆棧中刪除。微任務(wù)隊(duì)列中的作業(yè)先于回調(diào)隊(duì)列中的作業(yè)處理。例如 Promise、Mutation Observer、queueMicrotask

Node.js 中的線程池和瀏覽器中的 Web Workers 用于執(zhí)行需要密集 CPU 能力的異步操作和作業(yè)。我不會(huì)在這里討論它們?cè)谟梅ê头秶系牟町?。我想說的是:我們可以使用不同的機(jī)制來處理 JavaScript 無法處理的任務(wù)。

Nodejs 事件循環(huán)

以上就是Nodejs 事件循環(huán)的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!

最佳 Windows 性能的頂級(jí)免費(fèi)優(yōu)化軟件
最佳 Windows 性能的頂級(jí)免費(fèi)優(yōu)化軟件

每個(gè)人都需要一臺(tái)速度更快、更穩(wěn)定的 PC。隨著時(shí)間的推移,垃圾文件、舊注冊(cè)表數(shù)據(jù)和不必要的后臺(tái)進(jìn)程會(huì)占用資源并降低性能。幸運(yùn)的是,許多工具可以讓 Windows 保持平穩(wěn)運(yùn)行。

下載
來源:dev.to網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn
最新問題
開源免費(fèi)商場(chǎng)系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)