volatile-日常使用场景

6.4 如何正确使用volatile

单一赋值可以,但是含复合运算赋值不可以(i++之类的)

volatile int a = 10;

volatile boolean flag = true;

状态标志,判断业务是否结束

作为一个布尔状态标志,用于指示发生了一个重要的一次性事件,例如完成初始化或任务结束

销较低的读,写锁策略

当读远多于写,结合使用内部锁和volatile变量来减少同步的开销

原理是:利用volatile保证读操作的可见性,利用synchronized保证符合操作的原子性

volatile-日常使用场景_第1张图片

DCL双端锁的发布

问题描述:首先设定一个加锁的单例模式场景

volatile-日常使用场景_第2张图片

你可能感兴趣的:(JUC并发编程与源码分析,java,jvm,开发语言)