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脚本编程解决考试分数统计问题
Oct 18 Javascript
简单的代码实现jquery定时器
Nov 17 Javascript
parentElement,srcElement的使用小结
Jan 13 Javascript
JavaScript识别网页关键字并进行描红的方法
Nov 09 Javascript
js图片轮播手动切换效果
Nov 10 Javascript
AngularJS 路由详解和简单实例
Jul 28 Javascript
js 获取元素所有兄弟节点的实现方法
Sep 06 Javascript
12 款 JS 代码测试必备工具(翻译)
Dec 13 Javascript
bootstrap-table实现服务器分页的示例 (spring 后台)
Sep 01 Javascript
Angular2学习笔记之数据绑定的示例代码
Jan 03 Javascript
vuex操作state对象的实例代码
Apr 25 Javascript
npm 语义版本控制详解
Sep 10 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 at(@)符号的用法简介
2009/07/11 PHP
Linux下CoreSeek及PHP扩展模块的安装
2012/09/23 PHP
Laravel框架表单验证详解
2014/09/04 PHP
Windows下安装PHP单元测试环境PHPUnit图文教程
2014/10/24 PHP
php页面,mysql数据库转utf-8乱码,utf-8编码问题总结
2015/08/27 PHP
php自定义排序uasort函数示例【二维数组按指定键值排序】
2019/06/19 PHP
PHP使用HTML5 FormData对象提交表单操作示例
2019/07/02 PHP
TP5(thinkPHP5)框架使用ajax实现与后台数据交互的方法小结
2020/02/10 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
2020/04/23 PHP
js substring从右边获取指定长度字符串(示例代码)
2013/12/23 Javascript
javascript常见用法总结
2014/05/22 Javascript
兼容IE、firefox以及chrome的js获取时间(getFullYear)
2014/07/04 Javascript
ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
2014/08/30 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
Jquery实现select multiple左右添加和删除功能的简单实例
2016/05/26 Javascript
详解js实现线段交点的三种算法
2016/08/09 Javascript
谈谈jQuery之Deferred源码剖析
2016/12/19 Javascript
Bootstrap 实现表格样式、表单布局的实例代码
2018/12/09 Javascript
JS闭包原理与应用经典示例
2018/12/20 Javascript
Python中for循环控制语句用法实例
2015/06/02 Python
Python3安装Pymongo详细步骤
2017/05/26 Python
Python实现识别图片内容的方法分析
2018/07/11 Python
python 移动图片到另外一个文件夹的实例
2019/01/10 Python
15行Python代码实现网易云热门歌单实例教程
2019/03/10 Python
Python后台开发Django会话控制的实现
2019/04/15 Python
对python中的控制条件、循环和跳出详解
2019/06/24 Python
python 消费 kafka 数据教程
2019/12/21 Python
python安装mysql的依赖包mysql-python操作
2021/01/01 Python
HTML5的结构和语义(1):前言
2008/10/17 HTML / CSS
Manduka官网:瑜伽垫、瑜伽毛巾和服装
2018/07/02 全球购物
香港百佳网上超级市场:PARKNSHOP.com
2020/06/10 全球购物
校庆接待方案
2014/03/18 职场文书
互联网创业计划书写作技巧攻略
2014/03/23 职场文书
产品质量承诺书
2014/03/27 职场文书
监护人证明
2015/06/19 职场文书
2016猴年春节慰问信
2015/11/30 职场文书