位置: 编程技术 - 正文

详解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
  • 办税员可以增加办税员吗
  • 采购及安装合同怎么缴纳印花税
  • windows预览版dev和beta
  • 空调应该计入什么科目
  • nmap命令
  • 在php中,字符串有哪些表示形式
  • 整体租赁经营模式是什么
  • php目录结构
  • 销售佣金在所得税里扣吗
  • 前端打包后生成文件
  • 资产类备抵科目借方是加还是减
  • 航天信息开票软件客服
  • import vue from vue报错
  • pytorch torch
  • mysql分区实现
  • 后浪是什么意思网络用语
  • 电子商业汇票线下清算流程
  • 小企业其他应收款坏账处理
  • 理财产品利息计算方法
  • 银行回单打回来会计要做什么
  • 关于实收资本的表述中,不正确的是
  • 机票退票手续费新规定2023
  • 在售楼部帮客户卖房犯法吗
  • 基本户理财产品有哪些
  • mysql的查询缓存与redis的区别
  • 变更股东投资比例
  • 个别计价法和先进先出法的相同点
  • 权责发生制和收付实现制例题
  • 企业摊销无形资产价值时的会计处理
  • 发票丢失一张罚款标准
  • 汇算清缴纳税调整需要做账吗
  • 以产品偿还债务怎么算
  • 暂估入库一直没冲会怎么样
  • 打官司收到对方的款,如何做账
  • 未实际收到的投资收益
  • 红字发票怎么申报增值税
  • 政府奖励企业如何领取
  • 残联对残疾人的补助资金是多少
  • sql中分页
  • sql server触发器的编写与使用
  • 预览版与正式版
  • task host windows解决
  • ubuntu双显卡驱动安装
  • Linux操作系统分为
  • jinjia.exe进程
  • ubuntu with linux
  • OS X Yosemite系统怎么样 OS X Yosemite功能介绍
  • mac新手必看教程
  • retrorun.exe - retrorun有什么用 是什么进程
  • xp系统无法正常启动怎么办
  • win7系统如何连接共享打印机
  • 您的服务器不支持此服务
  • gzip: stdin: unexpected end of file tar: Unexpected EOF in archive tar: Unexpect
  • python中numpy.zeros(np.zeros)的使用方法
  • js的isnan
  • node.js开发实战
  • 基于JAVASCRIPT实现的可视化工具是
  • 安卓中px,dp,sp的区别
  • 日本互联网金融发展
  • 国税上海税务局官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设