亚洲 国产精品 日韩-亚洲 激情-亚洲 欧美 91-亚洲 欧美 成人日韩-青青青草视频在线观看-青青青草影院

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > Node中的Event Loop和瀏覽器中的有什么區(qū)別?process.nextTick 執(zhí)行順序?

Node中的Event Loop和瀏覽器中的有什么區(qū)別?process.nextTick 執(zhí)行順序?

來(lái)源:千鋒教育
發(fā)布人:wjy
時(shí)間: 2022-10-19 16:59:43 1666169983

  Node 中的 Event Loop 和瀏覽器中的是完全不相同的東西。

  Node 的 Event Loop 分為 6 個(gè)階段,它們會(huì)按照順序反復(fù)運(yùn)行。每當(dāng)進(jìn)入某一個(gè)階段的時(shí)候,都會(huì)從對(duì)應(yīng)的回調(diào)隊(duì)列中取出函數(shù)去執(zhí)行。當(dāng)隊(duì)列為空或者執(zhí)行的回調(diào)函數(shù)數(shù)量到達(dá)系統(tǒng)設(shè)定的閾值,就會(huì)進(jìn)入下一階段。

Node 中的 Event Loop 和瀏覽器中的有什么區(qū)別1

  (1)Timers(計(jì)時(shí)器階段):初次進(jìn)入事件循環(huán),會(huì)從計(jì)時(shí)器階段開始。此階段會(huì)判斷是否存在過(guò)期的計(jì)時(shí)器回調(diào)(包含 setTimeout 和 setInterval),如果存在則會(huì)執(zhí)行所有過(guò)期的計(jì)時(shí)器回調(diào),執(zhí)行完畢后,如果回調(diào)中觸發(fā)了相應(yīng)的微任務(wù),會(huì)接著執(zhí)行所有微任務(wù),執(zhí)行完微任務(wù)后再進(jìn)入 Pending callbacks 階段。

  (2)Pending callbacks:執(zhí)行推遲到下一個(gè)循環(huán)迭代的I / O回調(diào)(系統(tǒng)調(diào)用相關(guān)的回調(diào))。

  (3)Idle/Prepare:僅供內(nèi)部使用。

  (4)Poll(輪詢階段):

  當(dāng)回調(diào)隊(duì)列不為空時(shí):會(huì)執(zhí)行回調(diào),若回調(diào)中觸發(fā)了相應(yīng)的微任務(wù),這里的微任務(wù)執(zhí)行時(shí)機(jī)和其他地方有所不同,不會(huì)等到所有回調(diào)執(zhí)行完畢后才執(zhí)行,而是針對(duì)每一個(gè)回調(diào)執(zhí)行完畢后,就執(zhí)行相應(yīng)微任務(wù)。執(zhí)行完所有的回調(diào)后,變?yōu)橄旅娴那闆r。

  當(dāng)回調(diào)隊(duì)列為空時(shí)(沒有回調(diào)或所有回調(diào)執(zhí)行完畢):但如果存在有計(jì)時(shí)器(setTimeout、setInterval和setImmediate)沒有執(zhí)行,會(huì)結(jié)束輪詢階段,進(jìn)入 Check 階段。否則會(huì)阻塞并等待任何正在執(zhí)行的I/O操作完成,并馬上執(zhí)行相應(yīng)的回調(diào),直到所有回調(diào)執(zhí)行完畢。

  (5)Check(查詢階段):會(huì)檢查是否存在 setImmediate 相關(guān)的回調(diào),如果存在則執(zhí)行所有回調(diào),執(zhí)行完畢后,如果回調(diào)中觸發(fā)了相應(yīng)的微任務(wù),會(huì)接著執(zhí)行所有微任務(wù),執(zhí)行完微任務(wù)后再進(jìn)入 Close callbacks 階段。

  (6)Close callbacks:執(zhí)行一些關(guān)閉回調(diào),比如socket.on('close', ...)等。

  下面來(lái)看一個(gè)例子,首先在有些情況下,定時(shí)器的執(zhí)行順序其實(shí)是隨機(jī)的

Node 中的 Event Loop 和瀏覽器中的有什么區(qū)別2

  對(duì)于以上代碼來(lái)說(shuō),setTimeout 可能執(zhí)行在前,也可能執(zhí)行在后首先 setTimeout(fn, 0) === setTimeout(fn, 1),這是由源碼決定的進(jìn)入事件循環(huán)也是需要成本的,如果在準(zhǔn)備時(shí)候花費(fèi)了大于 1ms 的時(shí)間,那么在 timer 階段就會(huì)直接執(zhí)行 setTimeout 回調(diào)那么如果準(zhǔn)備時(shí)間花費(fèi)小于 1ms,那么就是 setImmediate 回調(diào)先執(zhí)行了當(dāng)然在某些情況下,他們的執(zhí)行順序一定是固定的,比如以下代碼:

Node 中的 Event Loop 和瀏覽器中的有什么區(qū)別3

  在上述代碼中,setImmediate 永遠(yuǎn)先執(zhí)行。因?yàn)閮蓚€(gè)代碼寫在 IO 回調(diào)中,IO 回調(diào)是在 poll 階段執(zhí)行,當(dāng)回調(diào)執(zhí)行完畢后隊(duì)列為空,發(fā)現(xiàn)存在 setImmediate 回調(diào),所以就直接跳轉(zhuǎn)到 check 階段去執(zhí)行回調(diào)了。

  上面都是 macrotask 的執(zhí)行情況,對(duì)于 microtask 來(lái)說(shuō),它會(huì)在以上每個(gè)階段完成前清空 microtask 隊(duì)列,下圖中的 Tick 就代表了 microtask

Node 中的 Event Loop 和瀏覽器中的有什么區(qū)別4

Node 中的 Event Loop 和瀏覽器中的有什么區(qū)別5

  對(duì)于以上代碼來(lái)說(shuō),其實(shí)和瀏覽器中的輸出是一樣的,microtask 永遠(yuǎn)執(zhí)行在 macrotask 前面。最后來(lái)看 Node 中的 process.nextTick,這個(gè)函數(shù)其實(shí)是獨(dú)立于 Event Loop 之外的,它有一個(gè)自己的隊(duì)列,當(dāng)每個(gè)階段完成后,如果存在 nextTick 隊(duì)列,就會(huì)清空隊(duì)列中的所有回調(diào)函數(shù),并且優(yōu)先于其他 microtask 執(zhí)行。

Node 中的 Event Loop 和瀏覽器中的有什么區(qū)別6

  對(duì)于以上代碼,永遠(yuǎn)都是先把 nextTick 全部打印出來(lái)。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
大數(shù)據(jù)測(cè)試工程師需要具備哪些技能?

一、理解大數(shù)據(jù)概念大數(shù)據(jù)測(cè)試工程師需要理解大數(shù)據(jù)的基本概念和原理,如分布式存儲(chǔ)、MapReduce、實(shí)時(shí)計(jì)算等。他們還需要了解如何處理大規(guī)模的...詳情>>

2023-10-14 23:43:03
為什么SpringBoot的 jar 可以直接運(yùn)行?

一、JAR文件的結(jié)構(gòu)與執(zhí)行方式Spring Boot的JAR包是Java Archive的縮寫,它是一種壓縮文件格式,可以將Java項(xiàng)目的類文件、資源文件以及依賴庫(kù)等...詳情>>

2023-10-14 23:01:49
站群服務(wù)器是什么?

站群服務(wù)器的含義與用途站群服務(wù)器主要用于支持站群,即由一組相互鏈接的網(wǎng)站組成的群體。這些網(wǎng)站通常由同一組織或個(gè)人擁有,并且經(jīng)常會(huì)互相鏈...詳情>>

2023-10-14 22:46:12
自編碼器是什么?

一、自編碼器原理自編碼器的設(shè)計(jì)靈感源于神經(jīng)科學(xué)中關(guān)于感知系統(tǒng)的認(rèn)知原理,它的核心思想是將輸入數(shù)據(jù)經(jīng)過(guò)編碼過(guò)程,形成一個(gè)隱藏層的特征表示...詳情>>

2023-10-14 22:41:10
什么是云網(wǎng)融合?

一、云網(wǎng)融合的定義云網(wǎng)融合是指將云計(jì)算與網(wǎng)絡(luò)技術(shù)相結(jié)合,實(shí)現(xiàn)資源的共享、業(yè)務(wù)的協(xié)同,將網(wǎng)絡(luò)與云端服務(wù)深度融合,提供更靈活、高效、安全的...詳情>>

2023-10-14 22:31:47
亚洲欲色欲色XXXXX在线| 日本边添边摸边做边爱小视频| 美国ZOOM人与ZOOM视频| 让人一看就舒服的网名| 偷拍 拍自 欧美色区| 亚洲国产人成自久久国产| 中文字AV字幕在线观看| 被黑人猛男强伦姧人妻完整版| 国产AV免费一区二区三区| 护士长在办公室躁BD| 免费A级毛片无码A∨性按摩| 日本一本免费一区二区三区免| 五月丁香色综合久久4438| 一本一道AV中文字幕无码| 被黑人伦流澡到高潮HNP动漫| 国产精品一区二区手机在线观看| 久久精品无码AV| 人禽杂交18禁网站| 亚洲AV无码成人精品区在线欢看| 中国女人内射6XXXXX| 国产AⅤ精品福利一区二区三区 | 99久久免费国产精品| 给丰满少妇按摩到高潮| 久久久国产精品亚洲一区| 日产乱码一二三区别视频| 亚洲国产精品久久久久网站| H纯肉无遮掩3D动漫在线观看 | 亚洲国产精品无码久久98蜜桃| 99精品无人区乱码1区2区3区 | 被村长狂躁俩小时玉婷| 国内精品久久久久久久影院| 白嫩极品女粉嫩喷水视频的| 老汉引诱新婚少妇| 日本无码视频精品一二三区| 亚洲AV永久无码精品少妇 | 午夜影视啪啪免费体验区入口| 岳两腿之间白嫩的小缝| 国产成人精品123区免费视频| 久久久久女教师免费一区| 色欲丰满熟妇人妻AV无码| 亚洲欧美偷拍内射白浆| 成人在线高清不卡免费视频| 久久国产亚洲精品无码| 少妇激情A∨一区二区三区| 又爽又黄又无遮挡网站| 国产精品导航一区二区| 男女后进式猛烈XX00动态图| 亚洲AV成人无码一二三在线观看| JIZZ成熟丰满| 精品亚洲成A人无码成A在线观看 | 国产精品主播一区二区三区| 欧美精品久久天天躁| 亚洲国产日韩欧美一区二区三区| 成 人 网 站 在线 看 免费| 久久久久久久精品成人热小说| 特级XXXXX欧美| 92午夜少妇极品福利无码电影| 国产在线精品二区| 日本免费人成视频在线观看| 野花 高清 中文 免费 日本| 国产高清中文版HD中字| 欧美人与动牲交免费观看| 亚洲成在人线AV中文字幕喷水| 成人免费无码大片A毛片抽搐色欲| 久久夜色精品国产嚕嚕亚洲AV| 无码少妇一区二区浪潮AV| らだ天堂中文在线| 久久无码精品一区二区三区| 性XXXⅩ俄罗斯女人| 成人免费视频一区二区三区| 美女裸体无遮挡永久免费观看网站 | 丰满少妇弄高潮了WWW| 欧美富婆性猛交XXXX| 野花韩国视频观看免费高清的| 国产乱人伦真实精品视频| 秋霞午夜久久午夜精品| 在公车上拨开内裤进入毛片| 黑人精品欧美一区二区蜜桃| 双乳被一左一右的吸着| ZLJZLJZLJ日本人水多多| 久久综合激的五月天的歌词 | 少妇被CAO高潮呻吟声| 99久久无码一区人妻| 久久无码喷吹高潮播放不卡| 亚洲成AV人片不卡无苍井空| 国产精品国产三级国产A| 日韩乱码人妻无码中文字幕| ASIAN日本裸体PICS| 老熟女太熟了95AV| 亚洲色在线无码国产精品不卡 | 中文字幕AV免费专区| 久久99精品久久久久子伦| 性色av无码人妻少妇肥臀| 公交车后车座疯狂的做的细节| 欧美熟老妇人B多毛OOXⅩ| 中文字幕精品第一区二区三区 | 国产午夜亚洲精品理论片不卡| 少妇私密会所按摩到高潮呻吟| 暗交小拗女一区二区三区电影| 妺妺窝人体色77777791| 尹人香蕉久久99天天拍| 久久久无码精品午夜| 亚洲中文精品久久久久久| 精品精品国产高清A毛片| 亚洲AV无码乱码在线观看牲色| 国产精品成人久久电影| 牲交A欧美牲交AⅤ免费一| 厨房掀起少妇裙子挺进去 | 草草永久地址发布页①| 人妻av无码一区二区三区| 99精品一区二区三区无码吞精| 蜜臀av一区二区三区人妻| 在线播放无码高潮的视频| 里面也请好好疼爱漫画最新章节| 野花视频免费观看完整版| 久久99精品久久久久久久不卡| 亚洲欧洲无码AV电影在线观看| 51吃瓜.WORLD张津瑜蘑菇| 久久精品国产亚洲AV麻豆AⅤ| 亚洲欧美成人中文日韩电影网站| 记忆女神的女儿们| 亚洲另类精品无码专区| 久久99精品国产99久久6尤物 | 日韩无码蜜桃视频| 日本久久久久精品免费网播放| 亚洲精品成人久久AV| 久久久久久久精品免费看人女| 亚洲日韩亚洲另类激情文学| 娇妻借好友1—38| 亚洲日韩精品无码一区二区三区| 精品黑人一区二区三区| 一本到在线高清视频| 蜜桃av一区二区三区| 99精品电影一区二区免费看 | 久久久久久伊人高潮影院| 小奶瓶(产奶)沈姜| 啊灬啊灬啊灬快灬深视频无遮掩 | 无码人妻丰满熟妇奶水区毛片| 国产精品久久久久久久久爆乳| 亚洲AV丁香五月六月婷婷| 精品免费AV一区二区三区| 亚洲午夜性猛春交XXXX| 浪货两个都满足不了你| 99精品国产高清一区二区| 人妻无码一区二区视频| 国产AV旡码专区亚洲AV苍井空| 午夜伦4480YY私人影院免费| 黑人巨茎大战俄罗斯美女| 一级特黄无码毛片av一区二区 | ASS年轻少妇PIC精品| 日韩精品久久久久久免费 | 无码专区—VA亚洲V天堂| 很嫩很紧直喷白浆在线| 一二三四日本中文在线| 欧美人妇做爰XXXⅩ性高| 当着老公的面被别人欺负该怎么办 | 被添高潮爱爱免费视频| 特大荫唇XX另类| 狠狠噜天天噜日日噜AV| 制服 丝袜 人妻 专区一本| 人妻人人做人妻人人添| 国产护士在线视频XXXX免费| 亚洲精品国精品久久99热| 免费无码黄网站在线观看| 成熟交BGMBGMBGM图片| 亚洲AV日韩AV永久无码电影| 久久婷婷五月综合丁香人人爽| 99热门精品一区二区三区无码| 少妇爆乳无码专区网站| 禁止18点击进入在线观看尤物| 中央气象台1一7天降水量预报图| 日韩精品久久久免费观看| 国产中国男男GayGay| 中文字字幕在线乱码| 十八禁乳露裸体奶头WWW网站| 狠狠做深爱婷婷久久综合一区| .精品久久久麻豆国产精品| 少妇极品丰满人妻无码视频| 狠狠综合久久久久精品网站| 99精品国产一区二区三区| 我把英语课代表按在桌子上抄| 精品一线二线三线区别大吗| JIZZJIZZ中国护士高清多| 午夜亚洲AV日韩AV无码大全| 麻豆国产精品VA在线观看不卡| 岛国片无删减上线| 亚洲午夜理论无码电影| 日本高清WWW色视频| 激情伊人五月天久久综合| 97人伦影院A级毛片| 婷婷人人爽人人爽人人片| 久久婷婷五月综合色高清图片| 成年美女黄网站18禁免费| 亚洲精品色无码AV试看| 去部队探亲晚上叫太大声| 和丰满少妇作爱过程视频| JAPANESEHD无码中文字| 亚洲成A人片在线观看无码 | 不知火舞蹈三个小孩海边X| 亚洲国产成人乱码|