java内存模型规范学习总结
java内存模型 复习jdk1.7虚拟机规范 了解java内存模型,需要我们对计算机硬件体系有一个基本掌握,要知道计算机里面的内存、高速缓冲、处理器、内存一致协议这些概念。 硬件系统内存模型 现代计算机为了解决处理器与存储设备之间性能冲突,引入了高速缓存,高速缓存读写速度接近处理器运算速度,为处理器单独使用。将运算需要使用到的数据复制到缓存种,让运算能快速进行,当运算结束后再从缓存同步回内存之中,这样处理器就不需要等待内存的读写了。 而在多处理器系统中,就涉及到 缓存一致性 问题,每个处理器都有自己的高速缓存,而它们又共享同一主内存。 内存模型:在特定的操作协议下,对特定的内存或高速缓存进行读写访问的过程。 java内存模型 不同的物理架构可以拥有不一样的内存模型,而java内存模型就是为了解决各种物理机上内存访问差异而产生的,以实现让java程序在各种平台下达到一致的内存访问效果。 java内存模型的目标,是定义程序中各个变量的访问规则,即在虚拟机中将变量的存储到内存和从内存中取出变量这样的底层细节。 java内存模型规定所有的变量都存储在主内存。 线程拥有自己的工 作内存,保存了被该线程使用到的变量的主内存副本拷贝,线程对变量的所有操作必须在工作内存中完成,不能直接操作主内存。 不同的线程不能直接访问对方的工作内存中变量,线程间变量值传递必须通过主内存来完成。