位置: 编程技术 - 正文

详解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介绍)

  • 增值税和所得税地方留存比例
  • 进项税额转出意思是下月还得缴吗
  • 开模具厂一年能挣多少钱
  • 企业返聘退休人员劳务合同
  • 电子税务局财务报表在哪里查询
  • 计提房产税计入哪个科目
  • 空调减值损失属于什么科目?
  • 应交增值税进项税额月底怎么处理
  • 公司做账是做什么
  • 货物进出口代理公司
  • 农户贷款免征增值税吗?
  • 利润借方余额表示盈利还是亏损
  • 如何辩别这样发票的真伪?
  • 哪些票据可以冲销
  • 个人所得税违约怎么查询
  • 二手店铺转让手续流程
  • 资金筹集业务核算实训心得体会
  • 汇总转账凭证可以是一借多贷
  • 购买原材料发生的采购费用计入
  • 项目盈利后收到短信
  • 不动产投资包括哪些
  • 购入的车辆入账包括哪些费用
  • 收到政府补贴的装修款
  • 洗牙的利和弊
  • 赔偿款支出会计处理
  • 房屋产权置换怎么交税?
  • php生成php文件
  • 购买二手车要缴税吗
  • php模糊查询txt文本
  • 模型调参是调节什么
  • 微软 gcr
  • 华为od测试岗机试需要怎么准备
  • HTTP加密/HTTPS工作过程
  • 支付国外佣金税怎么算
  • 房地产企业建筑成本
  • 银行承兑汇票记入会计科目
  • 民办非企业现金流量表的编制公式
  • 用人民币支付的公司
  • 应收账款计提坏账准备方法
  • mysql中的外键的作用
  • 批量替换多个word文档的同一内容
  • 固定资产清理的账务处理
  • 租赁合同印花税率多少
  • 已认证的增值税专用发票可以作废吗
  • 应收账款管理制度
  • 库存商品过期报废的会计分录是什么
  • 计提本月工资社保怎么扣
  • 待处理财产损溢借贷反向
  • 没有发票的福利费支出可以税前扣除吗
  • 人力资源公司的进项票有哪些
  • 资本金与注册资本的关系
  • 企业盘盈盘亏的固定资产先要计入待处理财产损益
  • 待抵扣进项税额借贷方向
  • 完全成本法损益表
  • 小规模企业所得税优惠政策最新2023
  • 赠送的产品怎么算成本
  • 应收账款增加说明企业什么
  • mysql事务用法
  • 网站windows
  • xp系统打印任务一闪就没有了
  • wmiprvse.exe这是什么进程
  • centos部署tomcat配置
  • windows102021年更新
  • linux挂载步骤
  • ie运行flash
  • linux如何使用u盘
  • shadersmod
  • bash脚本语法
  • python标准库很庞大,它可以帮助处理各种工作,包括
  • 显示解析包时出错是怎么回事
  • python tkinter tabview
  • javascript定律
  • jquery弹窗弹出一个页面
  • a+bpython
  • 批量ssh登录
  • android获取屏幕内容
  • 静海去天津的公交
  • 发票税额小数点打印不全能报销吗
  • 设计合同需要备案吗
  • 环保税申报流程视频
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设