可见性.原子性和有序性问题:并发编程Bug的源头 核心矛盾:CPU.IO.内存三者之间的速度差异. 为了合理利用 CPU 的高性能,平衡这三者的速度差异,计算机体系结构.操作系统.编译程序都做出了贡献,主要体现为: 1.CPU 增加了缓存,以均衡与内存的速度差异: 2.操作系统增加了进程.线程,以分时复用 CPU,进而均衡 CPU 与 I/O 设备的速度差异: 3.编译程序优化指令执行次序,使得缓存能够得到更加合理地利用. 缓存导致的可见性问题 一个线程对共享变量的修改,另外一个线程能够立刻看到…