并发编程的幕后
随着CPU、内存和I/O设备的不断升级,它们之间一直存在着一个矛盾,就是速度不一致问题。CPU的速度高于内存,内存的速度又高于I/O设备。
我们写的代码中大多数内容都会经过内存处理,有些内容会去读写I/O设备,根据木桶理论,整体的性能取决于最慢的操作,就是I/O设备,所以单单提升CPU的性能是不够的。
为了最大化体现出CPU的性能,计算机底层主要做了三部分优化:
-
CPU增加了缓存,比内存速度更快,平衡内存的速度
-
操作系统增加了进程和线程,可以对CPU分时复用
-
编译程序会进行指令的重排,使缓存更好的发挥性能
我们平时的工作中其实一直都享受着这些优化后的成果,但同时他们也会导致一些很难找到原因的BUG。