第12章:并发编程
并发与并行,傻傻分不清楚?
Last updated
Was this helpful?
并发与并行,傻傻分不清楚?
Last updated
Was this helpful?
处理器发展的趋势:多核时代早已到来!免费的午餐已经结束了!
参考文章(Herb Sutter):The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software
多核处理器成为上述变革的主流解決方案,想要压榨出更多的处理器效能,软件必须跟上硬件的设计!
【大佬讲座】谷歌大神 Rob Pike:并发 vs 并行 (傻傻分不清楚?)
Concurrency (并发)指程序架构,将程序拆成多个可独立运行的部分,不一定要同时运行,Parallelism(并行) 指程序执行,同时执行多个程序。
Concurrency 可能会用到 Parallelism,但不一定要用 Parallelism 才能实现 Concurrency。在 Concurrent 中,工作可拆分成「独立执行」的部份,于是「可以」让很多事情一起做,但「不一定」要真的同时做,参见下图。
以Rob Pike的地鼠烧书为例:1) 如何分割各个地鼠负责的工作, 2)各个地鼠如何进行高效的协调与沟通
那么我们究竟应该如何创建一个并行程序呢?以下流程图示取自CMU:15-418 并行计算架构与编程。
卡内基梅隆大学:并行计算架构与编程 (15-418 / 15-618)
伊利诺伊大学:异构并行编程(胡文美教授)- 重点讲解CUDA编程