0

0

浅谈Node事件循环的大致流程

青灯夜游

青灯夜游

发布时间:2021-10-28 09:54:01

|

2564人浏览过

|

来源于掘金社区

转载

本篇文章带大家简单了解一下node.js中的事件循环,来看看node.js事件循环的大概顺序,希望对大家有所帮助!

浅谈Node事件循环的大致流程

我们都知道目前我们用的应用程序多数是使用事件来驱动的,在我们与应用程序进行交互的过程中,会产生很多很多事件,比如点击、双击、三击等等等,还有文件读取完成或某些任务执行过程中会产生很多事件。

我们都知道Node.js是单进程、单线程的,却能够实现高并发,这就离不开我们的事件机制。具体来说是通过事件循环来实现的,通过异步回调接口和事件驱动就可以实现高并发。【推荐学习:《nodejs 教程》】

事件循环

在Node.js单线程运行时,相当于进入了一个“死”循环,在每个异步事件上的回调函数相当于查你手机的女朋友,如果女朋友发现“不好”的东西(事件)发生,就和你吵架(调用回调函数——吵架函数),直到以后都没有看到这些让你们吵架的东西(事件)时,就不再看你手机了(退出死循环)。

事件循环通常还会将相应的操作交给操作系统处理,我们也都知道目前操作系统基本上都是多线程的。也就是说我们知道这个名为Node.js的女朋友通常不是简单看看我们手机就完了,她还聘请专业的监控团队监控你的手机。这样就可以监控团队多个人检查你的手机信息(操作系统后台进行处理),当处理完一部分信息立马通知你女朋友(某个操作被完成,立马通知Node.js),然后女朋友就会根据信息的性质将打算干的事送入做事队列(Node.js就会将相关的回调函数添加到轮询队列),然后一个一个的执行。

这里有一张Node.js的事件循环简化图:

百度智能云·曦灵
百度智能云·曦灵

百度旗下的AI数字人平台

下载

1.png

在上图中,每一个阶段都会有一个FIFO的可执行回调函数的队列,通常情况下当事件循环进入到其中的一个阶段,就会执行该阶段的操作,再执行该阶段的队列中的回调,一直到队列结束或者达到回调数的限制,之后事件循环就会进入下一个阶段,这样来回循环。

根据这个图,我们可以知道事件循环的顺序大概是:

收到数据(incoming data)->轮询(poll)->检查(check)->关闭回调(close callback)->定时器(timers)->待定回调(pending callbacks)->闲置(idle, prepare)->轮询(poll)

更多编程相关知识,请访问:编程课程!!

相关专题

更多
Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

37

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

37

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

16

2026.01.13

PHP缓存策略教程大全
PHP缓存策略教程大全

本专题整合了PHP缓存相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.13

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

3

2026.01.13

交互式图表和动态图表教程汇总
交互式图表和动态图表教程汇总

本专题整合了交互式图表和动态图表的相关内容,阅读专题下面的文章了解更多详细内容。

45

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

9

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
HTML5/CSS3/JavaScript/ES6入门课程
HTML5/CSS3/JavaScript/ES6入门课程

共102课时 | 6.7万人学习

前端基础到实战(HTML5+CSS3+ES6+NPM)
前端基础到实战(HTML5+CSS3+ES6+NPM)

共162课时 | 18.8万人学习

第二十二期_前端开发
第二十二期_前端开发

共119课时 | 12.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号