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获取GridView中用户点击控件的行号,列号
Apr 14 Javascript
JavaScript单元测试ABC
Apr 12 Javascript
让复选框只能选择一项的方法
Oct 08 Javascript
JS实现程序暂停与继续功能代码解读
Oct 10 Javascript
jQuery循环滚动新闻列表示例代码
Jun 17 Javascript
JavaScript使用RegExp进行正则匹配的方法
Jul 11 Javascript
js老生常谈之this,constructor ,prototype全面解析
Apr 05 Javascript
详解Angular开发中的登陆与身份验证
Jul 27 Javascript
浅谈jQuery操作类数组的工具方法
Dec 23 Javascript
原生JS实现图片无缝滚动方法(附带封装的运动框架)
Oct 01 Javascript
Vue Router的懒加载路径的解决方法
Jun 21 Javascript
详解Vue后台管理系统开发日常总结(组件PageHeader)
Nov 01 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/06/14 PHP
PHP实现简单实用的验证码类
2015/07/29 PHP
php导出生成word的方法
2015/12/25 PHP
PHP连接SQL Server的方法分析【基于thinkPHP5.1框架】
2019/05/06 PHP
使用自定义setTimeout和setInterval使之可以传递参数和对象参数
2009/04/24 Javascript
10个基于jQuery或JavaScript的WYSIWYG 编辑器整理
2010/05/06 Javascript
JQuery中如何传递参数如click(),change()等具体实现
2013/04/28 Javascript
jQuery随便控制任意div隐藏的方法
2013/06/28 Javascript
javascript运动框架用法实例分析(实现放大与缩小效果)
2016/01/08 Javascript
基于jquery实现动态竖向柱状条特效
2016/02/12 Javascript
jQuery 3.0 的 setter和getter 模式详解
2016/07/11 Javascript
JS及PHP代码编写八大排序算法
2016/07/12 Javascript
Vue 固定头 固定列 点击表头可排序的表格组件
2016/11/25 Javascript
AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
2017/01/19 Javascript
详解tween.js的使用教程
2017/09/14 Javascript
Angularjs过滤器实现动态搜索与排序功能示例
2017/12/13 Javascript
小程序scroll-view组件实现滚动的示例代码
2018/09/20 Javascript
谈谈JavaScript令人迷惑的==与+
2020/08/31 Javascript
centos 下面安装python2.7 +pip +mysqld
2014/11/18 Python
Python实现过滤单个Android程序日志脚本分享
2015/01/16 Python
深入理解Python中字典的键的使用
2015/08/19 Python
Windows上使用virtualenv搭建Python+Flask开发环境
2016/06/07 Python
Python的地形三维可视化Matplotlib和gdal使用实例
2017/12/09 Python
Python面向对象实现一个对象调用另一个对象操作示例
2019/04/08 Python
Python创建一个元素都为0的列表实例
2019/11/28 Python
使用pygame编写Flappy bird小游戏
2020/03/14 Python
浅谈python出错时traceback的解读
2020/07/15 Python
详解python with 上下文管理器
2020/09/02 Python
Django中日期时间型字段进行年月日时分秒分组统计
2020/11/27 Python
浅析Python模块之间的相互引用问题
2021/02/26 Python
护士自我鉴定
2013/10/23 职场文书
孝老爱亲模范事迹材料
2014/05/25 职场文书
学生会感恩节活动方案
2014/10/11 职场文书
2015年学校党支部工作总结
2015/04/01 职场文书
2015年机关党委工作总结
2015/05/23 职场文书
《刺客之王:C罗全景传记》:时代从来不会亏待手艺人
2019/11/28 职场文书