nodejs的事件輪詢機制

//process.nextTick( )node

setTimeout( )tcp

setImmediate( ) //函數

nodejs的事件輪詢機制: 藉助libuv庫來實現的

事件輪詢機制主要分爲六個階段隊列

 1.timers 計時器階段事件

  計時和執行到點的定時器回調函數回調函數

 2.pending callbacks同步

  某些系統操做(如tcp錯誤類型)的回調函數ejs

 3.idle ,prepare定時器

  準備工做im

 4.poll 輪詢階段(輪詢隊列)

  若是輪詢隊列不爲空,依次同步取出輪詢隊列中第一個回調執行,知道輪詢隊列爲空或者達到系統最大的限制

  若是輪詢隊列爲空

    若是以前設置過setImmediate函數

      直接進入下一個check階段

    若是以前沒有設置過setImmediate函數

      在當前poll階段等待

        直到輪詢隊列添加回調函數,就去第一個狀況執行

        若是定時器到點了,也會去下一個階段

 5.check 查階段

  執行setImmediate設置的回調函數

 6.close callbacks 關閉階段

  執行close時間回調函數

 

關於 process.nextTick能在任意優先階段先執行

相關文章
相關標籤/搜索