前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >笔记:软件开发的转折——并发化

笔记:软件开发的转折——并发化

作者头像
刘笑江
发布2018-05-28 11:49:12
3500
发布2018-05-28 11:49:12
举报
文章被收录于专栏:刘笑江的专栏

——文章The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software By Herb Sutter的读书笔记

免费午餐的结束

近年来,摩尔定律失效、主频提速放缓,下一代CPU设计提高性能的方法:超线程(Hyperthreading)、多线程、缓存。

从1990年代至今,面向对象编程成为主流的原因,是其优势明显——能解决更大型的问题、更好的依赖解决;而其劣势——性能代价大,由摩尔定律——不断提速的CPU性能,所补偿,作者成为『免费的午餐』:人们使用面向对象方法写出性能低下的软件,等到交付后不久,硬件水平很快跟上。

但是到了现在,摩尔定律失效,作者认为软件开发将迎来下场革命:并发化。

并发化的代价和好处

目前并发化,多线程在主流开发广泛应用的原因:

  1. 自然地分离逻辑上独立的控制流
  2. 为了效率

并发化的代价:

  1. 需要人工规划没有瑕疵的并发模型 -> 漏洞产生竞争 -> 难以全面测试,debug耗时
  2. 并非所有应用适合并发
  3. 当设计不善时,获取锁的代价昂贵

对我们意味着什么

  1. 如果要使应用性能提升,压榨CPU吞吐性能,必须并发化。这是未来的『免费午餐』,如果未来Intel推出100核的CPU。但并非所以应用适合并发。
  2. CPU将越来越可能地,成为部分应用的下一个瓶颈,随I/O、网络、数据库瓶颈之后。
  3. 对于编程语言,效率性能优化将越来越重要。因为CPU主频的免费午餐(摩尔定律)趋于消失。
  4. 编程语言和系统,将越来越多地被迫支持、优化并发。更少的并行化标准(如pthread和OpenMP),更多的语言层面的支持(如Erlang Scala)。主流的lock-based编程是危险的,我们急切希望新的更高级的语言提供并发编程模型。

结论

  1. 打开你的项目看看有什么CPU密集的部分,可以从并发化获得好处。
  2. 花时间去学习并发编程,如这本书《七周七并发模型》by Paul Butcher
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-05-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 免费午餐的结束
  • 并发化的代价和好处
  • 对我们意味着什么
  • 结论
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档