【并发编程】摩尔定律失效“带来”并行编程
并发和并行 在真正开始聊本文的主题之前,我们先来回顾下两个老生常谈的概念:并发和并行。 并发 :是指多个线程任务在同一个CPU上快速地轮换执行,由于切换的速度非常快,给人的感觉就是这些线程任务是在同时进行的,但其实并发只是一种逻辑上的同时进行; 并行 :是指多个线程任务在不同CPU上同时进行,是真正意义上的同时执行。 下面贴上一张图来解释下这两个概念: 上图中的咖啡就可以看成是CPU,上面的只有一个咖啡机,相当于只有一个CPU。想喝咖啡的人只有等前面的人制作完咖啡才能制作自己的开发,也就是同一时间只能有一个人在制作咖啡,这是一种并发模式。下面的图中有两个咖啡机,相当于有两个CPU,同一时刻可以有两个人同时制作咖啡,是一种并行模式。 我们发现并行编程中,很重要的一个特点是系统具有多核CPU。要是系统是单核的,也就谈不上什么并行编程了。那么是什么原因导致了现代CPU架构都是多核架构?如果CPU架构都是单核的架构我们是不是就能不要研究什么并行编程了? "摩尔定律"失效 上面章节中留下了一个问题:为什么现代CPU都是多核架构。为了回答这个问题,我们先来了解一个定律--摩尔定律。 1965年,英特尔联合创始人戈登·摩尔提出以自己名字命名的「摩尔定律」,意指集成电路上可容纳的元器件的数量每隔 18 至 24 个月就会增加一倍,性能也将提升一倍。 根据摩尔定律