文章目录
- 1、Volatile 是什么
- 2、保证可见性
- 2.1 没有可见性的案例
- 2.2 实现可见性
- 3、不保证原子性
- 3.1 不保证原子性的案例
- 3.2 实现原子性
- 4、禁止指令重排
- 4.1 指令重排现象
- 4.1 Volatile 禁止指令重排原理
1、Volatile 是什么 ??前提,要掌握 Volatile 关键字,就得掌握 JMM。
??JMM 学习链接:Java 内存模型
??volatile 是一个类型修饰符。volatile 的作用是作为指令关键字,确保本条指令不会因编译器的优化而省略。
【[JUC-15] Volatile】??volatile 的特性:
??1、保证了不同线程对这个变量进行操作时的可见性;
??2、不保证原子性;
?
推荐阅读
- 并发编程|tomcat对AQS的扩展(使用LimitLatch控制连接数)
- java|java并发编程(顺序输出A、B、C循环10次)
- 两个线程交替打印奇偶
- Java|LeetCode-1114. 按序打印(多线程)
- Java|LeetCode-1117. H2O 生成(多线程)
- Java|LeetCode-1116.打印零与奇偶数(多线程)
- JAVA8|Java8对于多线程并发的一些新支持-LongAdder
- 如何实现某个线程在其他线程执行完毕之后再执行?
- 编程题|多线程: 如何实现多个线程交替打印字符串?
- 浅谈ReentrantLock