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 相关文章推荐
提高 DHTML 页面性能
Dec 25 Javascript
非常不错的功能强大代码简单的管理菜单美化版
Jul 09 Javascript
html的DOM中document对象anchors集合用法实例
Jan 21 Javascript
jquery图片滚动放大代码分享(2)
Aug 28 Javascript
jQuery实现鼠标滑过点击事件音效试听
Aug 31 Javascript
jQuery form插件的使用之处理server返回的JSON, XML,HTML数据
Jan 26 Javascript
javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
Oct 10 Javascript
Bootstrap整体框架之JavaScript插件架构
Dec 15 Javascript
jquery实现下拉框左右选择功能
Feb 21 Javascript
vue绑定的点击事件阻止冒泡的实例
Feb 08 Javascript
vue.js,ajax渲染页面的实例
Feb 11 Javascript
Vue动态组件和异步组件原理详解
May 06 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 前一天或后一天的日期
2008/06/28 PHP
PHP 使用pcntl和libevent 实现Timer功能
2013/10/27 PHP
php array_reverse 以相反的顺序返回数组实例代码
2017/04/11 PHP
ExtJS PropertyGrid中使用Combobox选择值问题
2010/06/13 Javascript
IE6下focus与blur错乱的解决方案
2011/07/31 Javascript
js URL参数的拼接方法比较
2012/02/15 Javascript
利用jQuery实现可输入搜索文字的下拉框
2013/10/23 Javascript
javascript根据时间生成m位随机数最大13位
2014/10/30 Javascript
关于JS中setTimeout()无法调用带参函数问题的解决方法
2016/06/21 Javascript
JavaScript实现输入框与清空按钮联动效果
2016/09/09 Javascript
Bootstrap实现圆角、圆形头像和响应式图片
2016/12/14 Javascript
基于JavaScript实现全选、不选和反选效果
2017/02/15 Javascript
JavaScript之浏览器对象_动力节点Java学院整理
2017/07/03 Javascript
webstorm添加vue.js支持的方法教程
2017/07/05 Javascript
js最简单的双向绑定实例讲解
2018/01/02 Javascript
vue里的data要用return返回的原因浅析
2019/05/28 Javascript
jquery多级树形下拉菜单的实例代码
2019/07/09 jQuery
JS+HTML5本地存储Localstorage实现注册登录及验证功能示例
2020/02/10 Javascript
python获取beautifulphoto随机某图片代码实例
2013/12/18 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
2017/12/20 Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
2018/04/10 Python
Python设计模式之模板方法模式实例详解
2019/01/17 Python
python快排算法详解
2019/03/04 Python
基于django channel实现websocket的聊天室的方法示例
2019/04/11 Python
浅谈sklearn中predict与predict_proba区别
2020/06/28 Python
基于python实现复制文件并重命名
2020/09/16 Python
python RSA加密的示例
2020/12/09 Python
美国非常受欢迎的Spa品牌:Bliss必列斯
2018/04/10 全球购物
Douglas意大利官网:购买香水和化妆品
2020/05/27 全球购物
放飞蜻蜓反思
2014/02/05 职场文书
优秀共产党员先进事迹材料
2014/05/06 职场文书
家长学校培训材料
2014/08/20 职场文书
环境工程专业毕业生求职信
2014/09/30 职场文书
人事任命通知书
2015/04/21 职场文书
大学生团日活动总结
2015/05/06 职场文书
用python删除文件夹中的重复图片(图片去重)
2021/05/12 Python