随笔分类 - java内存模型
摘要:hotspot x86平台上的内存屏障的实现依赖于lock指令,而Intel的lock指令的实现依赖于缓存一致性协议(例如MESI)。 本文只介绍hotspot X86平台的内存屏障的实现,没有任何关于其他平台是怎么实现内存屏障的内容。 一、字节码解释器源码分析验证hotspot字节码解释器在处理p
阅读全文
摘要:为什么会有happens-before 规则? 因为jvm会对代码进行编译优化,指令会出现重排序的情况,为了避免编译优化对并发编程安全性的影响,需要happens-before规则定义一些禁止编译优化的场景,保证并发编程的正确性。 主要解决多线程的可见性和排序性,解决不了原子性 public cla
阅读全文
摘要:前言 提到双重检查锁(Double-Checked Locking)通常简称为DCL,肯定很多人第一时间想到的就是单例模式。 单例模式通常有两种方式:饿汉与懒汉模式。那么懒汉模式采用了延迟初始化来降低类创建造成的消耗,DCL是常见的延迟初始化技术,但它是一个错误的用法。下面来详细分析以下这种
阅读全文