Java内存模型与线程

概述

  多任务处理在现代计算机操作系统中几乎已是一项必备的功能,多任务运行是压榨手段,就如windows一样,我们使劲的压榨它运行多个任务,俱要high又要耍。并发则是另外一种更具体的应用场景。每秒事物处理数(Transactions per Second,tps)是最重要的指标。开发人员应该了解与运用并发。

硬件的效率与一致性

  除了有软件上的并发,物理计算机也有并发问题。计算机的存储设备与处理器运算速度有几个数量级的差距,现代计算机都不得不加入一层高速缓存来作为内存与处理器之间的缓冲,这样能够提升处理速度。基于高速缓存解决了处理器与内存的速度矛盾,但是也提高了计算机系统复杂度,带来了缓存一致性问题。在多处理器系统中,每个处理器有自己的高速缓存,而它们又共享同一个主内存。如图:

移动开发培训,Android培训,安卓培训,手机开发培训,手机维修培训,手机软件培训

  多个处理器的任务都涉及同一块主内存区域时,将可能导致各自的缓存数据不一致。为了解决这种一致性的问题,需要各个处理器访问缓存时都遵循一些协议,在操作时要根据协议来进行操作,这类协议有MSIMESI(Illinois Protoclo)MOSISynapseFirefly以及Dragon Protocal等。

  除了增加高速缓存之外,为了使处理器得到充分利用,