成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長資訊網
最全最豐富的資訊網站

node.js事件隊列有幾個階段

node.js事件隊列有6個階段:1、“timers”階段;2、“I/O callbacks”階段;3、“idle, prepare”階段;4、“poll”階段;5、“check”階段;6、“close callbacks”階段。

node.js事件隊列有幾個階段

本教程操作環境:windows7系統、nodejs 12.19.0版,DELL G3電腦。

Node里的事件隊列和瀏覽器中的差異性還是比較大的,但是共同點就是宏任務和微任務的機制,是一樣的,如圖是關于node的宏任務與微任務分類。
node.js事件隊列有幾個階段
nexttick會在node的每一次事件開啟時最先執行(微任務最高優先級)。

而關于node事件隊列可分為如下6個階段:
node.js事件隊列有幾個階段

1、timers 階段:這個階段執行timer(setTimeout、setInterval)的回調

2、I/O callbacks 階段:執行一些系統調用錯誤,比如網絡通信的錯誤回調

3、idle, prepare 階段:僅node內部使用

4、poll 階段:獲取新的I/O事件, 適當的條件下node將阻塞在這里

5、check 階段:執行 setImmediate() 的回調

6、close callbacks 階段:執行 socket 的 close 事件回調

我們重點看timers、poll、check這3個階段就好,因為日常開發中的絕大部分異步任務都是在這3個階段處理的。

timers 階段

timers 是事件循環的第一個階段,Node 會去檢查有無已過期的timer,如果有則把它的回調壓入timer的任務隊列中等待執行,事實上,Node 并不能保證timer在預設時間到了就會立即執行,因為Node對timer的過期檢查不一定靠譜,它會受機器上其它運行程序影響,或者那個時間點主線程不空閑。比如下面的代碼,setTimeout() 和 setImmediate() 的執行順序是不確定的。

setTimeout(() => {   console.log('timeout')}, 0)setImmediate(() => {   console.log('immediate')})

如上段代碼是個大坑,node無法確定每次事件隊列建立完畢的具體時間,可能這一次是5ms(timer被壓入棧,在第二輪才會執行),下一次是1ms(timer在第一輪就被捕獲執行了)。因此輸出結果順序不確定,這也是具體原因,而當嵌套一個異步的操作把他們包裹起來,就會100%保證immediate先執行。

fs.readFile('./index.html',(err,result)=>{ 	setTimeout(() => { 	  console.log('timeout') 	}, 0) 	 	setImmediate(() => { 	  console.log('immediate') 	})})

這是因為由于在第一輪未捕捉在timer,所以直接到了poll階段進行io的回調捕捉,當io結束后進入check階段,就會執行immediate,而timeout會在第二輪最開始的timer執行。

poll 階段

poll 階段主要有2個功能:
1.處理 poll 隊列的事件
2.當有已超時的 timer,執行它的回調函數

even loop將同步執行poll隊列里的回調,直到隊列為空或執行的回調達到系統上限(上限具體多少未詳),接下來even loop會去檢查有無預設的setImmediate(),分兩種情況:

1.若有預設的setImmediate(), event loop將結束poll階段進入check階段,并執行check階段的任務隊列
2.若沒有預設的setImmediate(),event loop將阻塞在該階段等待

注意一個細節,沒有setImmediate()會導致event loop阻塞在poll階段,這樣之前設置的timer豈不是執行不了了?所以咧,在poll階段event loop會有一個檢查機制,檢查timer隊列是否為空,如果timer隊列非空,event loop就開始下一輪事件循環,即重新進入到timer階段。

check 階段

setImmediate()的回調會被加入check隊列中, 從event loop的階段圖可以知道,check階段的執行順序在poll階段之后。

小結

node中每一輪大的事件循環中劃分出了六個場景,每個場景需要按順序執行,比瀏覽器會更加細化,并且在每一個階段都會進行宏任務和微任務的處理,這是比較特殊的一點。

1、Node.js 的事件循環分為6個階段

2、瀏覽器和Node 環境下,microtask 任務隊列的執行時機不同

Node.js中,microtask 在事件循環的各個階段之間執行

瀏覽器端,microtask 在事件循環的 macrotask 執行完之后執行

3、遞歸的調用process.nextTick()會導致I/O starving,官方推薦使用setImmediate()

4、每個事件階段nexttick在微任務中的優先級是最高的。

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
永久免费观看国产裸体美女| 99久久精品国产第一页| 在线亚洲97SE亚洲综合在线| 2018人人看人人爽| 办公室娇喘的短裙老师| 国产超碰人人爽人人做人人添| 国产午夜福利在线观看红一片| 精品无码国产AV一区二区三区| 裸睡时一自慰不小心就滑进去啦| 欧美色成人综合天天影院| 色五月五月丁香亚洲综合网| 无码日韩精品一区二区免费| 亚洲欧美一区二区成人片婷婷| 中国东北熟女老太婆内谢| ZOOM另一类ZZO0| 国产黄 色 网 站 成 人免费| 狠狠色丁香婷婷久久综合不卡| 久久人人爽人人爽人人片AV不| 欧美高清VIDEOS36OP| 色欲丰满熟妇人妻av一区二区| 西西人体艺术图片| 一二三四免费观看高清视频| WWWらだ在线天堂中文在线| 国产白丝护士AV在线网站| 狠狠综合久久久久精品网站| 毛片TV网站无套内射TV网站| 日韩精品无码AV成人观看| 亚洲AV玩弄放荡人妇系列| 中文字幕久无码免费久久| 成人无码激情视频在线观看| 河南妇女毛深深的沟WCD| 免费无遮挡毛片中文字幕| 熟女乱中文字幕熟女熟妇| 亚洲日韩一区二区蜜桃AV| wwwxxx一区二区| 国精产品一区一区三区有限公司| 免费无码的AV片在线观看| 四虎影视新紧急入口| 亚洲色欲色欲欲WWW在线| 菠萝蜜视频APP在线观看| 国产又爽又黄又无遮挡的激情视频| 看着领导挺进娇妻的体内电影| 日韩AV人人夜夜澡人人爽| 亚洲第一无码AV播放器| YY111111少妇影院免费| 国内精品久久久久久久97牛牛| 免费无码成人AV片在线| 无码任你躁久久久久久| 坐公交车居然被弄了2个小时| 国产精品美女久久久久久久| 免费观看黄A级毛片| 无码专区人妻丝袜| 99久久国产综合精品成人影院| 国产偷窥熟女精品视频| 欧美人与禽Z0ZO牲伦交| 亚洲国产超清无码专区| 被带到调教室刑床惩罚挠痒痒作文 | 亚洲综合色在线观看一区二区| 东北老女人高潮大喊舒服死了| 久久久久久精品精品免费| 天天摸天天摸色综合舒服网| 最新亚洲人成网站在线观看| 国内精品久久久久久影院| 人妻无码熟妇乱又伦精品| 亚洲欧洲日产国码AⅤ| 丰满人妻AV无码一区二区三区| 久亚洲一线产区二线产区三线产区 | 无码一区二区三区老色鬼| AV无码AV高潮AV喷吹免费| 精品人妻无码中字系列| 熟妇人妻午夜寂寞影院| 中文字幕人妻一区二区三区| 国产亚洲精久久久久久无码7| 人人澡人摸人人添学生AV| 夜夜澡天天碰人人爱AV| 国产人成精品香港三级在线| 人妻一区二区三区高清AV专区| 一本一道VS无码中文字幕| 国产人久久人人人人爽| 日本精品一区二区三区在线视频| 一二三四视频社区在线一中文 | 亚洲不卡无码永久在线| 粉嫩av观看成人网站| 欧美XXXxX高潮喷水| 亚洲无码一区二区三区| 国产午夜精品无码| 手机在线看永久AV片免费| FREESEX欧美喷水| 久久亚洲精品无码AⅤ大香| 亚洲AV无码乱码在线观看| 丰满人妻被中出中文字幕| 男人GAY自慰吞精网站| 亚洲色精品AⅤ一区区三区| 国产午夜性春猛交ⅩXXX| 色欲午夜无码久久久久久| MM1313亚洲精品无码久久| 老熟妇仑乱一区二区视頻| 亚洲乱码AV一区二区| 国产性夜夜春夜夜爽| 熟女熟妇伦AV网站| 厨房掀起少妇裙子挺进去| 欧美人与动牲交A欧美精品| 曰韩欧美群交P片内射| 九九精品无码专区免费| 亚洲GV天堂无码男同在线观看| 国产成人无码专区| 少妇的丰满人妻HD高清| 超碰97中文字幕总站| 人伦片无码中文字| CHINA末成年VIDEO学生| 你日的我走不了路了| 中文字幕无码人妻丝袜| 裸体美女洗澡啪啪裸J网站 | 亚洲熟女成年三级中文字幕| 极品人妻系列少妇系列| 亚洲AV无码AV有码AV| 国产无遮挡无码视频在线观看不卡 | 一本色道久久综合一| 久久久噜噜噜久久熟女| 亚洲人成色7777在线观看不卡| 国内精品久久久久久99| 亚洲AV无码片一区二区三区| 国产精品亚洲А∨无码播放| 无人区码卡二卡WWW| 国产伦精品一区二区三区| 无套内谢少妇毛片免费看看| 国产精品国产三级国产AV麻豆 | 精品亚洲国产成人AV在线| 亚洲不卡AV不卡一区二区| 花色98堂新网名内容与理念| 亚洲AV午夜成人片精品网站 | 欧美狂野乱码一二三四区| 99国精产品品质溯源网| 欧美日韩精品久久久免费观看| www.性xxxxx| 日韩精品无码一区二区三区视频 | 扒开腿狂躁女人爽出白浆| 人人澡人摸人人添| 寡妇大J8又粗又大| 天天躁日日躁狠狠躁裸体| 国产精品天干天干有线观看| 性──交──性──乱| 激情偷乱人伦小说视频在线| 亚洲熟妇AV日韩熟妇在线| 老熟女太熟了95AV| AV无码精品一区二区三区| 人与性动交AAAABBBB| 国产V精品成人免费视频| 西方37大但人文艺术任汾A级| 含紧一点H边做边走动| 亚洲人成网站18禁止一区| 麻豆文化传媒精品观看网站| 99精品国产福久久久久久蜜桃 | 麻豆日产精品卡2卡3卡4卡5卡| 99精品又大又爽又粗少妇毛片| 人妻在厨房被色诱 中文字幕| 国产99视频精品免费视看9| 小SAO货CAO得你舒服吗男男| 精品爆乳一区二区三区无码AV| 野外妓女脱裤子让老头玩| 女教师的凌脣教室在线| 成人黄网站高清免费视频| 无码人妻精品一区二区蜜桃视频| 后入内射无码人妻一区| 征服丰满人妻老师| 日本熟妇乱人伦XXXX| 国产另类TS人妖一区二区| 亚洲无人区码二码三码区别| 欧美变态另类ZOZO| 夫妻之间的100种插秧法| 亚洲AV一本岛在线播放| 免费A级毛片18禁| 动漫人物插画动漫人物的视频 | 久久精品国产精品亚洲蜜月 | 一二三四视频社区在线| 人人妻人人爽人人爽| 国产欧美日韩专区发布| 夜夜爽77777妓女免费看 | 麻花传媒剧国产MV高清播放| 成人免费午夜无码视频在线播放| 亚洲AⅤ国产成人AV片妓女| 老师扒开粉嫩粉嫩的泬| 成人性生交大片免费看| 亚洲成A人片在线观看WWW| 女人张开腿扒开内裤让男生桶 | 久久无码专区国产精品| 边做边爱免费完整版视频播放| 午夜成人无码片在线观看影院| 久久综合九色综合欧美98| 俄罗斯PONONDLX| 亚洲熟妇色XXXXX成熟| 日本漂亮妈妈7在观有限中子| 好儿子妈妈今后就是你的人| 18禁美女裸体网站无遮挡| 我的大胸继拇在线观看| 老熟女HDXX中国老熟女| 高清国语自产拍免费视频| 一二三四在线观看视频韩国 | 欧美一进一出抽搐大尺度视频 | 国产韩国精品一区二区三区久久|