🖋️
CSAPP重点解读
  • 第01章:计算机系统漫游
  • 第02章:信息的表示和处理
  • 第03章:程序的机器级表示
  • 第04章:处理器体系结构
  • 第05章:优化程序性能
  • 第06章:存储器层次结构
  • 第07章:链接
  • 第08章:异常控制流
  • 第09章:虚拟内存
  • 第10章:系统级I/O
  • 第11章:网络编程
  • 第12章:并发编程
  • 附:各章节补充(配套电子书)
Powered by GitBook
On this page
  • 视频解说
  • 导读
  • 学习方式
  • 重点解读
  • 延伸阅读

Was this helpful?

第12章:并发编程

并发与并行,傻傻分不清楚?

Previous第11章:网络编程Next附:各章节补充(配套电子书)

Last updated 3 years ago

Was this helpful?

导读

处理器发展的趋势:多核时代早已到来!免费的午餐已经结束了!

参考文章(Herb Sutter):

多核处理器成为上述变革的主流解決方案,想要压榨出更多的处理器效能,软件必须跟上硬件的设计!

学习方式

重点解读

Concurrency (并发)指程序架构,将程序拆成多个可独立运行的部分,不一定要同时运行,Parallelism(并行) 指程序执行,同时执行多个程序。

Concurrency 可能会用到 Parallelism,但不一定要用 Parallelism 才能实现 Concurrency。在 Concurrent 中,工作可拆分成「独立执行」的部份,于是「可以」让很多事情一起做,但「不一定」要真的同时做,参见下图。

以Rob Pike的地鼠烧书为例:1) 如何分割各个地鼠负责的工作, 2)各个地鼠如何进行高效的协调与沟通

那么我们究竟应该如何创建一个并行程序呢?以下流程图示取自CMU:15-418 并行计算架构与编程。

延伸阅读

卡内基梅隆大学:

伊利诺伊大学:

CMU教授的视频教程 - Lecture23:并发编程
CMU教授的视频教程 - Lecture24:同步(基础)
CMU教授的视频教程 - Lecture25:同步(进阶)
CMU教授的视频教程 - Lecture26:线程级并行
【大佬讲座】谷歌大神 Rob Pike:并发 vs 并行 (傻傻分不清楚?)
并行计算架构与编程 (15-418 / 15-618)
异构并行编程(胡文美教授)- 重点讲解CUDA编程
视频解说
The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software