位置: 编程技术 - 正文

深入分析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文件)

  • 施工单位缴税实例
  • 资本公积转增资本的要求
  • 社保局发放的稳岗补贴怎么入账
  • 简易征收 抵扣进项
  • 金税四期怎么监控银行流水
  • 社保基数申报怎么看是否成功
  • 购置成本和订货成本是实际发生的吗
  • 收到投资款如何写凭证
  • 资产损失税前扣除
  • 预付的固定资产没有收到发票怎么入账
  • 注销时留抵税额不能退怎么做分录
  • 应交税费是什么科目借贷方向
  • 网上勾选认证发票步骤
  • 坏账损失怎么核算
  • 长期待摊费用以后怎么摊销
  • 审计费可以抵扣进项吗
  • 垃圾处理站利润
  • 受托方委托加工费会计分录
  • 从贸易公司购买来的货物可以退税吗
  • 向非绑定账户转账超限是什么意思
  • win10网页打不开但是有网
  • 电脑开不了机一直重启
  • 苹果语音备忘录怎么导出
  • 计提下个月工资怎么做
  • 当月报废的固定资产
  • 福利包括什么
  • laravel实战教程
  • 日落后的托莱多全景,西班牙 (© Frank Fischbach/Alamy)
  • 生产成本二级科目会计分录
  • 怎么给复选框赋值
  • window cuda
  • vgdisplay命令无效
  • 租金收入的所得税率
  • 多交增值税可以抵扣吗
  • python字典keys方法 顺序
  • 个人所得税专项附加扣除标准一览表
  • 增值税普通发票几个点
  • 小微企业具体指
  • 零星开支是什么会计科目
  • 借贷记账法的记账规则是
  • 电梯维保费属于什么费用
  • 公司不交工会经费有什么后果?工会经费交费时自愿的么?
  • sqlserver2008sa用户不能登录
  • 个人出租不动产增值税优惠政策
  • 增值税进项税没抵扣
  • 房屋出租简易计税进项税额需要转出么
  • 税局预缴增值税选错月期
  • 挂靠工程如何交纳税金帐务处理?
  • 员工意外险税前扣除比例
  • 新成立的公司能干吗
  • 现金日记账怎么记账
  • 民非企业怎么给员工交五险
  • 购买发票打印机如何账务处理?
  • 简易计税的进项税额转出会计分录
  • 残疾人就业保障金
  • 租赁车子
  • mysql修改默认字符集和校对规则
  • sql常用语句大全简书
  • 设置动态壁纸来电铃声
  • nw.exe是什么进程
  • win10蓝屏出现错误
  • 系统死锁或资源管理器崩溃时让xp系统自动重启的方法
  • 电脑cortana小娜有用吗
  • pavsrv51.exe - pavsrv51是什么进程 有什么用
  • win7开始菜单没有启动文件夹
  • win10怎么禁用device/credential guard
  • js如何将毫秒转换为日期
  • jquery手风琴折叠菜单
  • Unity3D事件函数的执行顺序
  • cocos lua调试
  • js弹出小窗口
  • java jsonstring
  • js实现返回顶部
  • android的r
  • 总体把握是什么意思
  • jquery鼠标点击
  • python编程简单案例
  • 国家税务局太原税务局官网
  • 小规模纳税人专票开1%还是3%
  • 怎么注册山东省采购网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设