[JUC-15] Volatile

文章目录

  • 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 的作用是作为指令关键字,确保本条指令不会因编译器的优化而省略。

  volatile 的特性:
  1、保证了不同线程对这个变量进行操作时的可见性;
  2、不保证原子性;

你可能感兴趣的:(并发编程)