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操作cookie的文章(设置,删除cookies)
Apr 01 Javascript
javascript 内存回收机制理解
Jan 17 Javascript
js 文本滚动效果的实例代码
Aug 17 Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
Jan 15 Javascript
JavaScript中的null和undefined区别介绍
Jan 01 Javascript
AngularJS实现表单验证
Jan 28 Javascript
JS表的模拟方法
Feb 05 Javascript
js实现匹配时换色的输入提示特效代码
Aug 17 Javascript
微信小程序 video组件详解
Oct 25 Javascript
js输入框使用正则表达式校验输入内容的实例
Feb 12 Javascript
node.js多个异步过程中判断执行是否完成的解决方案
Dec 10 Javascript
如何在postman测试用例中实现断言过程解析
Jul 09 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
一个非常完美的读写ini格式的PHP配置类分享
2015/02/12 PHP
Laravel 5.3 学习笔记之 安装
2016/08/28 PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
2017/03/15 PHP
PHP实现json_decode不转义中文的方法
2017/05/20 PHP
JavaScript中Math对象使用说明
2008/01/16 Javascript
jquery下组织javascript代码(js函数化)
2010/08/25 Javascript
从零开始学习jQuery (二) 万能的选择器
2010/10/01 Javascript
Jquery异步请求数据实例代码
2011/12/28 Javascript
javascript 进阶篇3 Ajax 、JSON、 Prototype介绍
2012/03/14 Javascript
JavaScript起点(严格模式深度了解)
2013/01/28 Javascript
js克隆对象、数组的常用方法介绍
2013/09/26 Javascript
javascript获取select的当前值示例代码(兼容IE/Firefox/Opera/Chrome)
2013/12/17 Javascript
新手快速学习JavaScript免费教程资源汇总
2015/06/25 Javascript
Angular 应用技巧总结
2016/09/14 Javascript
javascript的document中的动态添加标签实现方法
2016/10/24 Javascript
微信小程序 wx:key详细介绍
2016/10/28 Javascript
bootstrapValidator 重新启用提交按钮的方法
2017/02/20 Javascript
jQuery插件FusionWidgets实现的Bulb图效果示例【附demo源码下载】
2017/03/23 jQuery
浅谈vue+webpack项目调试方法步骤
2017/09/11 Javascript
AngularJS中控制器函数的定义与使用方法示例
2017/10/10 Javascript
python+opencv识别图片中的圆形
2020/03/25 Python
python 把文件中的每一行以数组的元素放入数组中的方法
2018/04/29 Python
python3 爬取图片的实例代码
2018/11/06 Python
深入了解如何基于Python读写Kafka
2019/12/31 Python
jupyter notebook 实现matplotlib图动态刷新
2020/04/22 Python
使用 css3 transform 属性来变换背景图的方法
2019/05/07 HTML / CSS
幼儿园美术教学反思
2014/01/31 职场文书
《画》教学反思
2014/04/14 职场文书
祖国在我心中演讲稿400字
2014/05/04 职场文书
文明演讲稿范文
2014/05/12 职场文书
法律顾问服务方案
2014/05/15 职场文书
扶贫办主任查摆“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
房屋财产继承协议书范本
2014/11/03 职场文书
2016年社会主义核心价值观心得体会
2016/01/21 职场文书
2019年最新感恩节祝福语(28句)
2019/11/27 职场文书
多表查询、事务、DCL
2021/04/05 MySQL