
Java内存模型
文章平均质量分 93
iter_zc
关注互联网架构方向
展开
-
聊聊高并发(三十四)Java内存模型那些事(二)理解CPU高速缓存的工作原理
在上一篇聊聊高并发(三十三)从一致性(Consistency)的角度理解Java内存模型 我们说了Java内存模型是一个语言级别的内存模型抽象,它屏蔽了底层硬件实现内存一致性需求的差异,提供了对上层的统一的接口来提供保证内存一致性的编程能力。在一致性这个问题域中,各个层面扮演的角色大致如下:1. 一致性模型,定义了各种一致性模型的理论基础2. 硬件层,提供了实现某些一致性模型的硬件能力原创 2014-12-17 11:06:34 · 15339 阅读 · 3 评论 -
聊聊高并发(三十三)Java内存模型那些事(一)从一致性(Consistency)的角度理解Java内存模型
可以说并发系统要解决的最核心问题就是一致性的问题,关于一致性的研究已经有几十年了,有大量的理论,算法支持。这篇说说一致性这个主题一些经常提到的概念,理清Java内存模型在其中的位置。一致性问题在单机器单CPU的情况下是最简单的,由于只有一个CPU,所有的读写操作都可以按照全局的时间顺序执行在单机器多CPU的情况下,多CPU并发执行,公用一个内存,一般通过共享内存的方式来处理一致性问原创 2014-12-15 14:31:07 · 11096 阅读 · 0 评论 -
聊聊高并发(三十六)Java内存模型那些事(四)理解Happens-before规则
在前几篇将Java内存模型的那些事基本上把这个域底层的概念都解释清楚了,聊聊高并发(三十五)Java内存模型那些事(三)理解内存屏障 这篇分析了在X86平台下,volatile,synchronized, CAS操作都是基于Lock前缀的汇编指令来实现的,关于Lock指令有两个要点:1. lock会锁总线,总线是互斥的,所以lock后面的写操作会写入缓存和内存,可以理解为在lock后面的写缓存原创 2014-12-19 11:53:35 · 7423 阅读 · 13 评论 -
聊聊高并发(三十五)Java内存模型那些事(三)理解内存屏障
在聊聊高并发(三十三)从一致性(Consistency)的角度理解Java内存模型 我们说了硬件层提供了满足某些一致性需求的能力,Java内存模型利用了硬件层提供的能力指定了一系列的语法和规则,让Java开发者可以隔绝这种底层的实现专注于并发逻辑的开发。这篇我们来看看硬件层是如何提供这些实现一致性需求的能力的。硬件层提供了一系列的内存屏障 memory barrier / memory原创 2014-12-18 16:08:03 · 13805 阅读 · 4 评论