位置: 编程技术 - 正文

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

  • 资金账簿印花税减半征收后可以叠加享受优惠吗
  • 购买汽车的印花税要计入汽车原值吗
  • 三栏式明细账适用于银行存款吗
  • 其他综合收益属于损益类科目吗
  • 库存现金账务处理
  • 什么叫销售劳务
  • 户口与工作地不一致,社保
  • 在建工程转什么
  • 接收商业承兑汇票需要到银行办手术吗
  • 取得的技术酬金怎么入账
  • 关税如何征收
  • 可以先报税后结账吗
  • 外商投资企业清算审计报告
  • 固定资产的初始成本包括
  • 公司汽车装潢和保养做什么会计科目
  • 注销时留抵税额不能退怎么做分录
  • 乐器的税率
  • 代缴水电费是什么意思
  • 企业的其他业务收入主要核算
  • 子公司借款给母公司要交税吗
  • 收到财产保险赔款会计分录
  • 个税申报系统换一台电脑要怎么办
  • 出口销售收入记账方法有哪些?
  • win10运行红色警戒2卡顿
  • 商品房买卖合同备案查询
  • 消防费用怎么做分录
  • 销售收入的暂估入账
  • php readdir函数
  • system-coredump进程
  • PHP:pg_options()的用法_PostgreSQL函数
  • 销售费用中业务费包括哪些
  • 发放应付职工薪酬是借方还是贷方
  • easyui给下拉框赋值
  • 银行本票存款和银行存款的区别
  • 瓜纳华托大学世界排名
  • 农民工的职业培训
  • 印克斯湖国家公园中的德克萨斯矢车菊,德克萨斯州 (© Inge Johnsson/Alamy)
  • 技术服务费可以计入成本吗
  • 存货的原材料分析
  • 在Windowsserver2019环境下,配置IP地址使用
  • 未确认融资费用怎么算
  • thinkphp技巧
  • 微信 php sdk
  • pytorch如何搭建神经网络
  • 委托加工物资如何做账
  • 小企业固定资产折旧方法
  • 驱动开发做得长久吗
  • PostgreSQL中使用dblink实现跨库查询的方法
  • 公司车辆保险费要交印花税吗
  • 小微企业利润表数据
  • mysql怎么修改
  • 广告费可以结转几年
  • 增值税普通发票和电子普通发票的区别
  • 一般纳税人普通发票要交增值税吗
  • 房屋租赁合同税率多少
  • 付设备款的会计分录
  • 股东打到公帐上怎么做账
  • 暂估固定资产的账务处理
  • 固定资产处置的会计科目
  • 收到客户提供代付发票
  • mysql忘记了初始密码
  • sqlserver怎么删除字段
  • ubuntu14.04升级18.04
  • w7系统怎么扫描
  • 启用win8 metro启动界面
  • w10资源管理器怎么打开快捷方式
  • ie6浏览器兼容模式怎么设置在哪里
  • js获取秒数
  • android开发步骤
  • android入门书
  • javascript数组去重代码
  • python标准模板库
  • nodejs promise.all
  • node.js 流
  • unity协程的工作原理
  • 深入理解计算机系统
  • 电子专票红字信息表
  • 重庆国税电子税务局手机版
  • 广东国税局局长是谁
  • 西安车辆购置税缴纳多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设