H__D  

2020年12月22日

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