位置: 编程技术 - 正文

详解nodejs异步I/O和事件循环(nodejs 异步io)

编辑:rootadmin

推荐整理分享详解nodejs异步I/O和事件循环(nodejs 异步io),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:node 异步io,node 异步,node中异步编程模式使用什么捕获异常,nodejs 异步,nodejs异步编程及原理,nodejs 异步io底层原理,nodejs 异步,nodejs 异步,内容如对您有帮助,希望把文章链接给更多的朋友!

事件驱动模型

详解nodejs异步I/O和事件循环(nodejs 异步io)

现在我们来看看nodejs中的事件驱动和异步I/O是如何实现的.

nodejs是单线程(single thread)运行的,通过一个事件循环(event-loop)来循环取出消息队列(event-queue)中的消息进行处理,处理过程基本上就是去调用该消息对应的回调函数。消息队列就是当一个事件状态发生变化时,就将一个消息压入队列中。

nodejs的时间驱动模型一般要注意下面几个点:

因为是单线程的,所以当顺序执行js文件中的代码的时候,事件循环是被暂停的。 当js文件执行完以后,事件循环开始运行,并从消息队列中取出消息,开始执行回调函数 因为是单线程的,所以当回调函数被执行的时候,事件循环是被暂停的 当涉及到I/O操作的时候,nodejs会开一个独立的线程来进行异步I/O操作,操作结束以后将消息压入消息队列。

下面我们从一个简单的js文件入手,来看看 nodejs是如何执行的。

同步执行debug("begin") 异步调用fs.readFile(),此时会开一个新的线程去进行异步I/O操作 异步调用setTimeout(),马上将超时信息压入到消息队列中 同步调用debug("end") 开启事件循环,弹出消息队列中的信息(目前是超时信息) 然后执行信息对应的回调函数(事件循环又被暂停) 回调函数执行结束后,开始事件循环(目前消息队列中没有任何东西,文件还没读完) 异步I/O读取文件完毕,将消息压入消息队列(消息中含有文件内容或者是出错信息) 事件循环取得消息,执行回调 程序退出。

标签: nodejs 异步io

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

上一篇:浅析 NodeJs 的几种文件路径(nodejs实战教程)

下一篇:详解Node.js 命令行程序开发教程(node.js介绍)

  • 进项税转出的会计凭证
  • 房地产开发企业资质管理规定
  • 公司购买股票如何做账
  • 进项税额转出期末有余额吗
  • 工会经费计入成本费用
  • 有限合伙企业要交增值税吗
  • 招聘服务合同印花税
  • 餐饮通用机打发票可以报销吗
  • 生产企业固定资产折旧
  • 剩余折旧月份
  • 发行股票时支付的发行费属于
  • 免费的企业
  • 交通违章罚款有优惠吗
  • 建筑业增值税税率2022
  • 美国税改“梦想”很丰满,显示很骨感
  • 开发项目的会议纪要
  • 电话充值卡如何变现
  • 专用发票离线限额是什么意思
  • 未实现但已确认的风险代理费收入如何处理?
  • 担保扶持基金可以冲代偿吗
  • 为什么无形资产减值准备一经计提不得转回
  • 版权许可授权书
  • windows10如何开启自动更新
  • linux CentOS WEB服务器分区方案
  • 电脑管家系统异常要修复吗
  • 按产量和单价计算工业总产值
  • linux服务器nfs安装
  • 冲红的会计分录
  • uniapp安装插件
  • element分页器
  • 接受捐赠会计准则
  • 曲折的拼音
  • centos 安装php
  • 税负太高会预警吗
  • 大学生问卷spss数据分析作业
  • mysql中regexp_substr函数的使用
  • 摊销专利权的会计科目是
  • 企业可以收付实现制记账吗
  • 网络购发票怎么读入
  • ubuntu系统安装教程
  • 批处理命令在windows操作中的典型应用
  • 收付转和记账凭证
  • 小规模纳税人转让土地使用权税率
  • 负数发票开票条件?
  • 开具发票后,如发生销售退回,通常有的两种处理方式是?
  • 收入准则适用范围
  • 增加固定资产原值
  • 专票红冲信息表填开显示红字信息表金额大于蓝色金额
  • 研发费用允许加计扣除的标准
  • 外聘人员的劳务合同模板
  • 民间非盈利组织使用什么会计准则
  • 陪标收费标准
  • 固定资产的税法处理与会计处理的差异50字
  • 研发一个月多少钱
  • 出口退税怎么回事
  • 公司注销记账凭证还有用吗
  • 深入分析换一种说法
  • 动态sql中返回数组的值
  • macos怎么操作
  • 各个都很实用:win7系统电脑日常小技巧
  • linux修改ssh端口号启动失败
  • 联想安装xp系统
  • win8磁盘占用率100%
  • centos安装命令yum
  • [置顶] 此外,车牌号:458143(懂得都懂[吃瓜])
  • ios平台中glsl中shadow2DProjEXT函数的简单说明以及变换矩阵的小注意点
  • renderjs echarts
  • js调用方法什么时候要加括号
  • node_modules复制
  • uploadify上传无反应
  • shell脚本编写简单计算器
  • 文件夹怎么变成
  • androidのLinearLayout中组件右对齐
  • 如何让listview提高效率
  • 职称申报结束多久公示
  • 12366纳税服务热线工作时间
  • 土地增值税清算时间要求
  • 特殊工种作业人员
  • 已经开票的房子还能退吗
  • 装修费也要缴纳房产税吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设