node.js的事件輪詢機制

藉助libuv庫實現的ide

歸納事件輪詢機制:分爲六個階段
1.timers 定時器階段
計時和執行到點的定時器回調函數函數

2.pending callbacks
某些系統操做(例如TCP錯誤類型)隊列

3.idle,prepare事件

4.poll輪詢階段(輪詢隊列)
若是輪詢隊列不爲空,依次同步取出輪詢隊列中第一個回調函數,直到輪詢隊列爲空或者達到系統最大限制
若是輪詢隊列爲空
若是以前設置過setImmediate函數,直接進入下一個check階段,若是以前沒有設置過setImmediate函數,在當前 poll階段等待,直到輪詢隊添加回調函數,就會去第一個狀況執行,若是定時器到點了,他也會去下一個階段回調函數

5.check查階段
執行setImmediate設置的回調函數同步

6.close callbacks關閉階段
close事件回調函數it

process.nextTick()的意思就是定義出一個動做,pengd而且讓這個動做在下一個事件輪詢的時間點上執行。能在任意階段優先執行class

相關文章
相關標籤/搜索