位置: 编程技术 - 正文

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

  • 未办理税务登记的个体户怎么注销营业执照
  • 税务师考哪5门
  • 提前一个月完工奖励10万元
  • 未完工程如何处理
  • 定金冲抵货款怎么做分录
  • 发票未到暂估账务处理
  • 建筑物进项税额可以抵扣吗
  • 公积金做账需要计提吗怎么做
  • 三栏式明细账科目编号怎么填
  • 软件企业享受税收优惠
  • 加油站企业规模大小怎么划分
  • 出售拆迁补偿住房违法吗
  • 行政事业单位核算短期投资时有关预算会计核算正确的是
  • 异地预交所得税跨年还能用吗
  • 收到客户不要的定金怎么做账?
  • 企业给员工的异地安家费交个税吗?
  • 个人去税务局开居间费发票
  • 税收滞纳金算不算营业利润
  • 一般纳税人以清包工方式
  • 采购合同清单的安装调试费如何开具发票?税率是多少
  • 发票金额大于付款金额怎么入账
  • 二手车抵押银行贷款
  • 进口采购交的增值税
  • 腾讯手游助手闪屏怎么办
  • php oci8
  • 毛利率计算公式举例说明
  • 亡灵节mid
  • 酒店开业前准备工作流程
  • 原材料预付款如何做账
  • 卷积神经网络CNN实验报告
  • gpu版本的pytorch
  • 前端vue面试题2020
  • jquery设置不可用
  • 生产销售库存的会计科目
  • mysql更新视图的方式
  • 个人劳务报酬所得税税率
  • 边际贡献总额什么意思
  • 抵扣进项税是怎么算的
  • 结转全年利润总额
  • mysql新手教程
  • 民宿的房屋租赁费怎么算
  • 摊销期在一年以内房租的账务处理
  • 贷款利息收入要交增值税吗
  • 土地承包费摊销当月摊销吗
  • 土地出让金抵减增值税
  • 电子汇票接收后怎么操作
  • 买车的车
  • 营业外收入主要来源
  • 餐饮行业招聘方案
  • 三方抵账协议做什么科目
  • 房产开发企业以什么为主
  • mysql检查表是否存在
  • 远程管理是什么意思
  • windows 2000 server系统安装图解
  • newmessage是什么软件
  • win7系统删除文件夹怎么恢复
  • Win10桌面图标怎么隐藏
  • ubuntu14.04启动不了
  • linux中的find的用法
  • coocareservice.exe是病毒吗
  • win8.1连接wifi
  • centos wget
  • win8.1怎么关闭更新
  • linux运行级别有几种
  • 彻底理解样本方差为何除以n-1
  • nodejs解析路径
  • 深入理解
  • android开发手册
  • django中的model
  • js获取时间精确到毫秒
  • jquery和html的关系
  • 批处理命令是什么语言
  • bootstrap基础教程书籍
  • XML、HTML、CSS与JS的区别整理
  • 安卓竖屏改横屏
  • 供暖配套费
  • 宜兴税务局长郁岚
  • 江苏省职工医保门诊报销比例
  • 三免三减半是什么
  • 岗位大练兵业务大比武简报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设