龙空技术网

java最好的单列模式 double-checked

小瓜瓜666 189

前言:

目前我们对“java单列”大致比较关切,咱们都需要了解一些“java单列”的相关资讯。那么小编同时在网摘上收集了一些关于“java单列””的相关文章,希望朋友们能喜欢,姐妹们一起来学习一下吧!

如上面的注释内容所示,读写 volatile 变量时会加入内存屏障(Memory Barrier(Memory Fence)),保证下面 两点:

1、可见性

(1)写屏障(sfence)保证在该屏障之前的 t1 对共享变量的改动,都同步到主存当中

(2)而读屏障(lfence)保证在该屏障之后 t2 对共享变量的读取,加载的是主存中最新数据

2、有序性

(1)写屏障会确保指令重排序时,不会将写屏障之前的代码排在写屏障之后

(2)读屏障会确保指令重排序时,不会将读屏障之后的代码排在读屏障之前

更底层是读写变量时使用 lock 指令来多核 CPU 之间的可见性与有序性

标签: #java单列