位置: 编程技术 - 正文

深入分析node.js的异步API和其局限性(深入分析南水北调工程面临的新形势心得体会)

编辑:rootadmin

推荐整理分享深入分析node.js的异步API和其局限性(深入分析南水北调工程面临的新形势心得体会),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:深入分析原因,找出症结,对存在的问题进行了深入分析,深入分析换一种说法,深入分析原因,找出问题根源并有效破解,深入分析换一种说法,深入分析原因,找出症结,对存在的问题进行了深入分析,对存在的问题进行了深入分析,内容如对您有帮助,希望把文章链接给更多的朋友!

用异步API的原因

异步的概念之所以首先在Web2.0中火起来,是因为在浏览器中Javascript在单线程上执行,而且他还与UI渲染公用一个线程.这意味着Javascript在执行的时候UI渲染和响应是处于停滞状态的.为了用户体验更好而采取异步的方式(当然,这在所谓的单线程语言中)不阻塞主线程继续响应用户操作.这属于用户体验的范畴.

同样的,如果有其他语言经验的工程师当然也明白,CPU在线程间切换是需要消耗大量的时间的(主要为上下文之间的切换和缓存),所以提高效率也是使用异步API的理由.

当然,这些并不是绝对的正确,只是人人都这么说而已.因为如果创建多线程的开销小于并行执行,那么多线程的方式是首选,这时常被认为是CPU密集型的处理任务.

总之,异步IO或者说异步API可以算作Node的特色,因为它是收个大规模将异步IO应用在应用层上的平台,它力求在单线程上将资源分配得更高效.

关于Promise

这里,本文并不打算详细讲解Promise的用法,只简单说明Promise的一些API和试用范围:

如何等待多个Promise完成&#;

这段代码确实表现出了nodejs开发的优雅之处.

那么问题在哪&#;

目前再优雅的语言依然依托于操作系统,也就是说,系统的限制依然存在:

深入分析node.js的异步API和其局限性(深入分析南水北调工程面临的新形势心得体会)

我不知道能不能把这个错误解释成文件操作句柄耗尽,但大概意思本文希望各位能够理解,操作系统并不是可以同时打开无限多个文件.

还有这种:

这个很好理解,内存耗尽. 当然,内存限制,可以通过加入以下两个运行参数调整:

上述参数在V8初始化时生效,一旦生效不可动态变更.

很多人可能会提出,这两个限制在其他语言中一样存在.是的,其他语言一样存在.

但是其他语言强大的GC或多线程的编程模型可以让工程师们能在申请系统资源之后及时释放.

而nodejs中虽然也可手动释放不需要的系统资源,但真的可以做到引用程序里的每一个操作都能及时释放吗&#;

举个栗子:nodejs的redis包(npm install redis)并不提供同步的操作方法.

这意味着开发的过程要考虑更多的流程控制,很遗憾,单线程体系的nodejs并不擅长这个,正是因为本质上没有多线程的概念,没有锁机制,也不可能包含通常意义上的信号量机制,结果就是工程师根本不知道什么时候去手动释放资源.

除非对自己项目有绝对的掌控权,不使用任何使用异步API的第三方包.

所以,目前的结论就是,Promise只是一种开发的技巧,了解这些,并不适用于所有开发场景.

总结

标签: 深入分析南水北调工程面临的新形势心得体会

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

上一篇:node网页分段渲染详解(node分页接口)

下一篇:Node.js读写文件之批量替换图片的实现方法(nodejs读写json文件)

  • 营业执照丢失公示几天才能注销
  • 计提业务提成怎么做账
  • 抵扣联 发票联
  • 全额计提坏账准备后,多久核销应收账款
  • 免交的附加税需要计提吗
  • 减免所得税优惠明细表怎么填
  • 员工在公司食堂就餐被烫伤医药费由谁承担
  • 几个月以前发现便血是肠癌吗
  • 债务重组偿债顺序
  • 生产企业出口退税
  • 房产税从租计征的税率是12%还是4%
  • 坏账冲回要纳税调减吗
  • 资产负债表中无形资产是原值还是净值
  • 企业破产的费用的承担
  • 税务局开普票怎么开
  • 第三方代缴社保算工龄吗
  • 公司买了商品做活动会计分录
  • 大额存款提前取一部分怎么计息
  • 税率调整后之前签的合同用变更吗
  • 一般纳税人企业所得税政策最新2023税率
  • 提示没有安装QQ怎么处理
  • 生产性服务业定义
  • 一月份开的票可以算到12月吗
  • 小微企业免增值税到什么时候
  • 以前年度的费用可以入在当年吗?
  • 苹果6s自动清理
  • windows为什么从7开始
  • linux系统基础教程
  • 公司收到发票怎么做账
  • 贷款房屋评估费怎么收
  • shstart.exe - shstart是什么进程 有什么用
  • 骑自行车的好处功效与作用
  • 照片文件夹如何压缩
  • 职工教育经费支出包括哪些内容
  • 建筑业预缴增值税
  • php编程入门教程
  • php自动部署
  • 合伙企业能享受所得税减半征收
  • 优秀员工奖励现金是工资还是福利
  • 汇算清缴时期间费用是负数
  • 所得税预缴怎么申报
  • 资产减值损失会计科目编码
  • 资本公积现金流量表里放在哪里
  • 主营业务成本包括工资吗
  • 疫情防控重点保障企业名单
  • 政府专项资金补助计入什么科目
  • 把上级机关来文转给下级机关的通知
  • 未发生账务类交易
  • 不按规定纳税的违法行为
  • 企业接收到政府信息
  • 厂房装修费用账务处理
  • 收到免费赠送的产品怎么做账
  • 融资租入的设备怎么入账
  • Windows 10 与 MySQL 5.5 安装使用及免安装使用详细教程(图文)
  • mysql跨服务器查询语句
  • mysql模糊查询like多个条件
  • mysql查询结果输出
  • Mac系统怎么设置ftp
  • openmpi编译
  • 内存故障会不断重启么
  • vrvedp_m.exe是什么进程
  • linux系统中怎么输入中文
  • winxp打开任务管理器的快捷键
  • win10version20h2的03累积更新
  • window10光驱
  • 保存 linux
  • cocos2dx schedule
  • macbook编译java
  • nodejs制作网站
  • css查找元素
  • javaScript NameSpace 简单说明介绍
  • [置顶] [Android Studio 权威教程]AS添加第三方库的6种方式(Jar,module,so等)
  • android 材料设计
  • 甘肃国家税务局兰州专用章图片
  • 给派出所写情况说明房屋情况怎么写啊
  • 八个点可以开出几张发票
  • 地税跟国税是在一起吗
  • 留抵税额退税政策2023
  • 电子秒表怎么读数9:33.12
  • 个税3月份申报2月的个税?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设