国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

javascript - node中的事件輪詢和異步代碼的執(zhí)行

瀏覽:114日期:2023-04-07 17:47:35

問題描述

node的主線程執(zhí)行js代碼,當(dāng)是一個異步操作時,node會交給libuv去執(zhí)行,然后會去執(zhí)行異步后面的代碼。當(dāng)libuv執(zhí)行完后,會放入一個循環(huán)隊(duì)列中,libuv會有一個類似while(true)的事件循環(huán)(Event Loop),這個事件循環(huán)存在于node的單線程(也就是主線程),主線程循環(huán)取事件執(zhí)行回調(diào)函數(shù)。那么主線程的循環(huán)取事件和執(zhí)行異步后面的代碼是怎樣的一個過程?一個線程不可能同時做兩件事,是執(zhí)行完異步后面的代碼,cpu空閑時才會去循環(huán)取事件嗎?

問題解答

回答1:

首先明確一點(diǎn),主線程在有代碼執(zhí)行時是不會去輪詢的。所以主線程會把所有的初始代碼(非回調(diào)代碼)執(zhí)行完后再去事件隊(duì)列輪詢(事件隊(duì)列在被輪詢時可以看成一個js對象)因?yàn)槔碚撋蟡s引擎主線程,只能識別js代碼。但初始代碼執(zhí)行完后,js主線程會去輪詢?nèi)∈录?dāng)取到一個回調(diào)函數(shù)后,js引擎會把當(dāng)前回調(diào)代碼執(zhí)行完后,才會在去輪詢。總結(jié)一下就是,只有js引擎在沒有代碼執(zhí)行時,才會去進(jìn)行輪詢,或者說,js主線程中永遠(yuǎn)只有一個回調(diào)函數(shù)

回答2:

javascript - node中的事件輪詢和異步代碼的執(zhí)行覺得這篇文章能解決你的疑惑

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 兴隆县| 额尔古纳市| 伊宁市| 盖州市| 安岳县| 蒙自县| 澄迈县| 博客| 长乐市| 驻马店市| 富宁县| 昂仁县| 重庆市| 平湖市| 普洱| 南靖县| 裕民县| 收藏| 仙桃市| 孟连| 武宁县| 辰溪县| 石河子市| 白沙| 中西区| 阿拉善右旗| 乌什县| 阿坝| 长顺县| 东乡县| 宣城市| 镇康县| 福建省| 玉龙| 建昌县| 萨嘎县| 乐山市| 雷波县| 金阳县| 宁海县| 福安市|