node.js中事件輪詢機制的原理是什么,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
創(chuàng)新互聯(lián)主營佛山網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,重慶APP開發(fā),佛山h5微信平臺小程序開發(fā)搭建,佛山網(wǎng)站營銷推廣歡迎佛山等地區(qū)企業(yè)咨詢
借助libuv庫實現(xiàn)的
概括事件輪詢機制:分為六個階段
1.timers 定時器階段
計時和執(zhí)行到點的定時器回調函數(shù)
2.pending callbacks
某些系統(tǒng)操作(例如TCP錯誤類型)
3.idle,prepare
4.poll輪詢階段(輪詢隊列)
如果輪詢隊列不為空,依次同步取出輪詢隊列中第一個回調函數(shù),直到輪詢隊列為空或者達到系統(tǒng)最大限制
如果輪詢隊列為空
如果之前設置過setImmediate函數(shù),直接進入下一個check階段,如果之前沒有設置過setImmediate函數(shù),在當前 poll階段等待,直到輪詢隊添加回調函數(shù),就會去第一個情況執(zhí)行,如果定時器到點了,他也會去下一個階段
5.check查階段
執(zhí)行setImmediate設置的回調函數(shù)
6.close callbacks關閉階段
close事件回調函數(shù)
process.nextTick()的意思就是定義出一個動作,pengd并且讓這個動作在下一個事件輪詢的時間點上執(zhí)行。能在任意階段優(yōu)先執(zhí)行
關于node.js中事件輪詢機制的原理是什么問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關知識。