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