摘要:
双重锁校验单例 代码如下: 1 public class DoubleCheckedLock { 2 3 // 使用volatile修饰禁止重排序 4 private volatile static DoubleCheckedLock instance; 5 6 private DoubleChec
阅读全文
posted @ 2020-12-22 22:48
H__D
阅读(1319)
推荐(0)
摘要:
一、volatile是什么 volatile在java语言中是一个关键字,用于修饰变量。被volatile修饰的变量后,表示这个变量在不同线程中是共享,编译器与运行时都会注意到这个变量是共享的,因此不会对该变量进行重排序。 volatile关键字的两层语义 一旦一个共享变量(类的成员变量、类的静态成
阅读全文
posted @ 2020-12-22 19:47
H__D
阅读(222)
推荐(0)
摘要:
什么是JMM JMM即为JAVA 内存模型(java memory model)。因为在不同的硬件生产商和不同的操作系统下,内存的访问逻辑有一定的差异,结果就是当你的代码在某个系统环境下运行良好,并且线程安全,但是换了个系统就出现各种问题。Java内存模型,就是为了屏蔽系统和硬件的差异,让一套代码在
阅读全文
posted @ 2020-12-22 17:43
H__D
阅读(191)
推荐(0)