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 相关文章推荐
jquery 提交值不为空的元素示例代码
May 10 Javascript
Extjs4 Treegrid 使用心得分享(经验篇)
Jul 01 Javascript
JavaScript中的ubound函数使用实例
Nov 04 Javascript
JavaScript 学习笔记之语句
Jan 14 Javascript
javascript鼠标右键菜单自定义效果
Dec 08 Javascript
js+flash实现的5图变换效果广告代码(附演示与demo源码下载)
Apr 01 Javascript
jQuery实现下拉框功能实例代码
May 06 Javascript
input获取焦点时底部菜单被顶上来问题的解决办法
Jan 24 Javascript
React-Native左右联动List的示例代码
Sep 21 Javascript
elementUI select组件使用及注意事项详解
May 29 Javascript
JS Web Flex弹性盒子模型代码实例
Mar 10 Javascript
在vscode 中设置 vue模板内容的方法
Sep 02 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
解析dedeCMS验证码的实现代码
2013/06/07 PHP
php中strstr、strrchr、substr、stristr四个函数的区别总结
2014/09/22 PHP
php之curl设置超时实例
2014/11/03 PHP
php输出xml属性的方法
2015/03/19 PHP
PHP实现中文圆形印章特效
2015/06/19 PHP
Symfony模板的快捷变量用法实例
2016/03/17 PHP
Yii2 rbac权限控制之菜单menu实例教程
2016/04/28 PHP
javascript 装载iframe子页面,自适应高度
2009/03/20 Javascript
javascript 面向对象的JavaScript类
2010/05/04 Javascript
javascript处理表单示例(javascript提交表单)
2014/04/28 Javascript
Nodejs 搭建简单的Web服务器详解及实例
2016/11/30 NodeJs
JavaScript异步加载问题总结
2018/02/17 Javascript
解决Layui数据表格显示无数据提示的问题
2019/11/14 Javascript
vue中keep-alive内置组件缓存的实例代码
2020/04/16 Javascript
Vue如何跨组件传递Slot的实现
2020/12/14 Vue.js
[02:24]DOTA2痛苦女王 英雄基础教程
2013/11/26 DOTA
[01:01:01]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第一场 10.29
2020/10/29 DOTA
[01:48:04]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第一场 2月7日
2021/03/11 DOTA
Python中利用sqrt()方法进行平方根计算的教程
2015/05/15 Python
对python3 一组数值的归一化处理方法详解
2018/07/11 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
2020/04/30 Python
详解pandas获取Dataframe元素值的几种方法
2020/06/14 Python
10行Python代码实现Web自动化管控的示例代码
2020/08/14 Python
windows+vscode安装paddleOCR运行环境的步骤
2020/11/11 Python
利用CSS3动画实现圆圈由小变大向外扩散的效果实例
2018/09/10 HTML / CSS
玉兰油美国官网:OLAY美国
2018/10/25 全球购物
Fossil德国官网:化石手表、手袋、珠宝及配件
2019/12/07 全球购物
路由表示做什么用的?在linux环境中怎么来配置一条默认路由?
2013/06/07 面试题
2014年消防工作实施方案
2014/02/20 职场文书
联片教研活动总结
2014/07/01 职场文书
音乐之声音乐广播稿
2014/09/10 职场文书
化工厂员工工作总结
2015/10/15 职场文书
2016先进工作者事迹材料
2016/02/25 职场文书
公司与个人合作协议书
2016/03/19 职场文书
2019年个人工作总结范文
2019/03/25 职场文书
2019企业给员工的慰问信
2019/06/24 职场文书