位置: 编程技术 - 正文

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入门)

  • 研发支出属于什么现金流量项目
  • 纳税人识别号在哪里能查到
  • 租厂房需要交租赁税吗
  • 企业筹建期间利息支出税前扣除怎么算
  • 建筑工地加油计入什么科目
  • 小规模免征增值税额度2022
  • 转让财产收入征税吗
  • 个人房产租金收入如何纳税申报
  • 企业所得税跨期费用的相关规定
  • 本月采购下月付款怎么记账
  • 负债月末正常余额是什么
  • 税收编码名称是什么
  • 财会人员
  • 资本结构理论有哪些类型
  • 代购商品委托书怎么写
  • 行政事业单位如何加强财务管理
  • 合并报表存货抵消分录第二年
  • 股东增加投资款要交印花税吗
  • 收到捐赠的固定资产需要折旧吗
  • 软件企业收到即征即退分录
  • 公司账务审计费用取费标准
  • 钱已确定收不回怎么办
  • macos10.15.7更新
  • 收到一张餐饮费发票怎么入账
  • 公司收回货款会计分录
  • php网页爬虫
  • 进项税年末需要结转么
  • 安装win7提示版本过低
  • 增值税红字专用发票什么意思
  • 手把手教你暴力破解wifi密码
  • 一次性劳务报酬所得如何扣税
  • window.location.href返回值
  • php 文件系统
  • 数学建模赋权
  • 购买电子承兑差额是多少
  • 应收账款周转率下降说明什么
  • 施工企业内部常设置?主要出实验报告
  • 生产加工企业的成本核算
  • 分公司非独立核算怎么做账
  • 在建工程应交税金怎么算
  • 政府会计业务活动费用会计分录
  • 发票的开具流程一般是?
  • 销售商品开票税目
  • 税控盘忘记抄报税怎么办
  • 在建工程待摊支出结转
  • 事业单位外出参观培训心得
  • 纸巾的发票可以抵扣进项税吗
  • 公司的在建工程入账会计分录没有付款
  • 递延收益属于哪个报表项目
  • 行政转工会经费请示
  • 辞退福利是入工资还是福利费
  • 固定资产的主要特征
  • 废品回收利用公司
  • 公司银行开户的一些资料是公司办公室保存还是财务保存
  • 核销预收账款是否需要计提增值税
  • 外贸内销业务哪个部门管
  • 各单位都需设置的是
  • sqlserver表类型
  • windows web server 2008
  • windowsxp关闭窗口操作方法有哪些
  • 苹果电脑mac怎么卸载软件
  • 虚拟机怎么手动设置ip地址
  • imac触发角
  • centos升级命令
  • linux jre
  • ramaint.exe - ramaint是什么进程 有什么用
  • BootStrap TreeView使用实例详解
  • node.js 10实战
  • node 内存泄漏
  • shell脚本中计算变量除法
  • dos命令怎么输入命令
  • php获取当前脚本路径
  • jquery下拉列表
  • javascript面向对象吗
  • 原生javascript
  • 单位车辆购置税怎么申报缴纳
  • 组织创新包括哪些类型
  • 科级干部试用期一年转正流程
  • 美国企业所得税税率2022
  • 电脑上怎样安装word文档
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设