码迷,mamicode.com
首页 > Web开发 > 详细

node.js的事件轮询机制

时间:2019-12-22 09:16:58      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:定时器   定义   libuv   操作   timers   情况   timer   close   call   

借助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()的意思就是定义出一个动作,pengd并且让这个动作在下一个事件轮询的时间点上执行。能在任意阶段优先执行

node.js的事件轮询机制

标签:定时器   定义   libuv   操作   timers   情况   timer   close   call   

原文地址:https://blog.51cto.com/13550695/2460599

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!