node.js事件轮询机制原理知识点


Posted in Javascript onDecember 22, 2019

借助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并且让这个动作在下一个事件轮询的时间点上执行。能在任意阶段优先执行

以上就是本次介绍的全部知识点内容,感谢大家的学习和对三水点靠木的支持。

Javascript 相关文章推荐
javascript 主动派发事件总结
Aug 09 Javascript
js读写json文件实例代码
Oct 21 Javascript
JavaScript中的lastIndexOf()方法使用详解
Jun 06 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
Apr 19 Javascript
JavaScript开发Chrome浏览器扩展程序UI的教程
May 16 Javascript
41个Web开发者必须收藏的JavaScript实用技巧
Jul 22 Javascript
JS碰撞运动实现方法详解
Dec 15 Javascript
jQuery中on方法使用注意事项详解
Feb 15 Javascript
基于JavaScript实现活动倒计时效果
Apr 20 Javascript
深入浅析Node.js单线程模型
Jul 10 Javascript
MVVM框架下实现分页功能示例
Jun 14 Javascript
基于Node的Axure文件在线预览的实现代码
Aug 28 Javascript
javascript实现fetch请求返回的统一拦截
Dec 22 #Javascript
详解vue-router 动态路由下子页面多页共活的解决方案
Dec 22 #Javascript
判断JavaScript中的两个变量是否相等的操作符
Dec 21 #Javascript
javascript中的相等操作符(==与===区别)
Dec 21 #Javascript
JavaScript中的相等操作符使用详解
Dec 21 #Javascript
高性能js数组去重(12种方法,史上最全)
Dec 21 #Javascript
ES6常用小技巧总结【去重、交换、合并、反转、迭代、计算等】
Dec 21 #Javascript
You might like
php下实现农历日历的代码
2007/03/07 PHP
php过滤危险html代码
2008/08/18 PHP
yii2使用GridView实现数据全选及批量删除按钮示例
2017/03/01 PHP
YII2框架中使用yii.js实现的post请求
2017/04/09 PHP
PHP xpath()函数讲解
2019/02/11 PHP
PHP 数组黑名单/白名单实例代码详解
2019/06/04 PHP
Javascript 布尔型分析
2008/12/22 Javascript
event.srcElement 用法笔记e.target
2009/12/18 Javascript
Javascript动态绑定事件的简单实现代码
2010/12/25 Javascript
五个jQuery图片画廊插件 推荐
2011/05/12 Javascript
网页编辑器ckeditor和ckfinder配置步骤分享
2012/05/24 Javascript
jquery实现点击TreeView文本父节点展开/折叠子节点
2013/01/10 Javascript
JavaScript中的继承方式详解
2015/02/11 Javascript
jquery实现鼠标滑过后动态图片提示效果实例
2015/08/10 Javascript
简单学习JavaScript中的for语句循环结构
2015/11/10 Javascript
jQuery prototype冲突的2种解决方法(附demo示例下载)
2016/01/21 Javascript
微信小程序 本地数据读取实例
2017/04/27 Javascript
react.js 父子组件数据绑定实时通讯的示例代码
2017/09/25 Javascript
js指定日期增加指定月份的实现方法
2018/12/19 Javascript
《javascript设计模式》学习笔记七:Javascript面向对象程序设计组合模式详解
2020/04/08 Javascript
[01:04:01]2014 DOTA2华西杯精英邀请赛5 24 DK VS VG
2014/05/25 DOTA
浅谈编码,解码,乱码的问题
2016/12/30 Python
Python实现简单遗传算法(SGA)
2018/01/29 Python
Python机器学习之K-Means聚类实现详解
2018/02/22 Python
Pandas读取MySQL数据到DataFrame的方法
2018/07/25 Python
Pycharm新建模板默认添加个人信息的实例
2019/07/15 Python
Python常用数据类型之间的转换总结
2019/09/06 Python
django框架单表操作之增删改实例分析
2019/12/16 Python
e路東瀛(JAPANiCAN)香港:日本旅游、日本酒店和温泉旅馆预订
2018/11/21 全球购物
澳大利亚游乐场设备品牌:Lifespan Kids
2019/05/24 全球购物
文科教师毕业的自我评价
2014/01/16 职场文书
领导个人查摆剖析材料
2014/10/29 职场文书
环卫处个人工作总结
2015/03/04 职场文书
公司庆典主持词
2015/07/04 职场文书
在Centos 8.0中安装Redis服务器的教程详解
2022/03/21 Redis
WCG2010 星际争霸决赛 Flash vs Goojila 1 星际经典比赛回顾
2022/04/01 星际争霸