位置: 编程技术 - 正文

Node.JS中事件轮询(Event Loop)的解析(nodejs事件循环和js事件循环)

编辑:rootadmin

推荐整理分享Node.JS中事件轮询(Event Loop)的解析(nodejs事件循环和js事件循环),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:nodejs中的事件循环的执行顺序,node.js事件循环分为几个阶段,node.js事件循环分为几个阶段,nodejs中的事件循环的执行顺序,node 事件轮询,node.js 事件循环,node.js 事件循环,node 事件轮询,内容如对您有帮助,希望把文章链接给更多的朋友!

当我们知道I/O操作和创建新线程的开销是巨大的!

网站延迟的开销

对于一个网站,后台大多不需要进行复杂的计算,我们的程序大多时间花费在I/O读取上。

看到一个数据:IO操作可以比数据处理慢几个数量级。高端SSD固态硬盘的读取速度可以达到mb-mb/s;读取字节需要1.4微秒。而在此期间,2GHZ频率的CPU可以执行个指令处理周期。而网络数据的IO甚至更慢!

NodeJS采用单线程非阻塞的架构解决老大难的IO问题

当采用多线程时,为每一个请求开启一个新的线程(Apache就是这样做的)。当并发增多,线程的消耗会十分严重。

什么是阻塞和非阻塞呢?

阻塞调用是指调用结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回。非阻塞调用指在不能立刻得到结果之前,该调用不会阻塞当前线程。

Node.JS中事件轮询(Event Loop)的解析(nodejs事件循环和js事件循环)

用node执行以下代码,会先输出我不会被阻塞,再输出我读完文件了

一个知乎的回答:

你打电话问书店老板有没有《分布式系统》这本书,你如果是阻塞式调用,你会一直把自己“挂起”,直到得到这本书有没有的结果,如果是非阻塞式调用,你不管老板有没有告诉你,你自己先一边去玩了, 当然你也要偶尔过几分钟check一下老板有没有返回结果。

NodeJS的事件轮询

这是node虽然为单线程,但是可以处理大并发,高吞吐量的核心。一个事件轮询拥有下面三个组件

事件队列:这是一个FIFO模型的队列,一方推入事件,另一方推出事件 队列的读取轮询线程组件,也就是主角Event Loop, 单独的线程池,用来执行长任务(也就是threadpool,node底层,用C++写的,不会阻塞)

在nodejs中,只有一个主线程(也就是前面说的单线程)来不断读取轮询(书中称为调用I/O观察者)队列中是否有事件。

而对于读取文件,HTTP

请求等(现代cpu处理能力很强,事件处理相当快,导致运行速度下降的瓶颈在I/O)比较容易堵塞的事件,就在这个单线程中

执行肯定会造成堵塞,所以Event Loop

会把这类型的事件交给底层的线程池执行,并给予线程池一个回调函数,当线程池操作

完成这堵塞任务后,便把结果和回调函数一起再放入轮询队列中。

总结

标签: nodejs事件循环和js事件循环

本文链接地址:https://www.jiuchutong.com/biancheng/376386.html 转载请保留说明!

上一篇:从零学习node.js之mysql数据库的操作(五)(node.js快速入门)

下一篇:从零学习node.js之express入门(六)(node js入门)

  • 增值税小规模纳税人申报表填表说明
  • 车辆报废做账务处理依据的法规是
  • 出差的招待费怎么报销
  • 个人独资企业可以投资有限公司吗
  • 生产加工型企业经营范围
  • 房产税的计税依据有哪些
  • 提入转账支票会计分录
  • 企业取得财产转让收入确认时间
  • 供应商转让合同
  • 减少实收资本会引起资产和所有者权益发生变化吗
  • 公司是否可以开电子发票
  • 个人如何缴纳公共维修基金
  • 营业外收入交税会计分录
  • 经济法基础企业所得税好难
  • 以前工会是没有公章的吗
  • 电子发票怎么缩小比例
  • 销售换货怎么做账务处理
  • 降温费和取暖费标准
  • 公积金代扣时会扣多少
  • 存货资产减值损失转回怎么做账
  • 电费预提费用
  • 电脑重装系统怎么激活
  • 老大心态是什么意思
  • window10与CentOS双系统安装详细教程
  • 注册资金没有的怎么做账
  • mouse.exe在哪个文件夹
  • 酒店没有营业执照可以举报吗?
  • 详解php实现执行任务
  • 防止盗链的php代码
  • 冬日里的科赫尔湖,德国巴伐利亚州 (© Reinhard Schmid/eStock Photo)
  • 还在用夸克?这3款能安装插件的手机浏览器不香吗_Via_
  • php sendmail
  • js原型模式创建对象的优缺点
  • 拨出专款年末结转
  • 个体工商户个税优惠政策2023
  • 法人股东分红要缴纳多少税
  • 桥接模式例子
  • 销售折扣购物卡对公司财务的好处
  • 个税如果是公司怎么申报
  • 企业做账的流程图
  • 简易征收为什么要进项税转出呢
  • 企业营业执照的颁发部门是
  • 预收账款是负债还是资产
  • 软件开发销售属于什么行业
  • 半成品怎么核算成本做账
  • 固定资产入账要发票吗
  • 本年利润的会计分录
  • 新政府会计固定资产的核算与计量
  • 房地产结转收入的条件
  • 超过诉讼时效的法律后果
  • 工程承建方给予什么赔偿
  • 认缴的注册资金怎么做账
  • 出差费计入工资总额吗
  • 农产品收购发票如何抵扣进项税
  • 股东投入固定资产怎么做账
  • 报销需要发票吗?
  • 所得税费用怎么计提
  • 成本收入率和收入成本率的区别
  • 资产减值损失冲减
  • 企业有生产单没发票
  • 房地产开发企业资质管理规定
  • sql连接查询实验报告
  • sql server常用
  • window10 bitlocker
  • Fedora Core 4.0 安装图解
  • windows自带的应用程序
  • win7系统连接VPN失败时提示错误代码721的故障分析及解决方法
  • linux系统批量替换内容
  • win7笔记本设置合上盖子不休眠
  • js自动生成序号
  • 批处理删除指定后缀名
  • logcat read failure
  • 通过jquery实现页面的动画效果(实例代码)
  • javascript对象的常用方法
  • jquery checkbox无法用attr()二次勾选问题的解决方法
  • adb把文件拷贝到手机
  • 厦门怎么查询自己名下电动自行车
  • 从价计征和从租计征的区别,有什么优缺点
  • 小规模纳税人一年500万一年怎么算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设