nodejs的事件輪詢機制


//process.nextTick( )

setTimeout( )

setImmediate( ) //

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

事件輪詢機制主要分為六個階段

 1.timers 計時器階段

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

 2.pending callbacks

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

 3.idle ,prepare

  准備工作

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

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

  如果輪詢隊列為空

    如果之前設置過setImmediate函數

      直接進入下一個check階段

    如果之前沒有設置過setImmediate函數

      在當前poll階段等待

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

        如果定時器到點了,也會去下一個階段

 5.check 查階段

  執行setImmediate設置的回調函數

 6.close callbacks 關閉階段

  執行close時間回調函數

 

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM