Java - volatile

Java - volatile

1. volatile的特性

  • 可见性。对于 volatile 变量的读和写,任意线程总是能够看到该volatile变量最新的值。
  • 原子性。对于 volatile 变量的读和写操作具有原子性。(复合操作除外,如:num++)。

2. volatile的内存语义

  • 当写一个 volatile 变量时,JMM 会把该线程对应的本地内存中的共享变量值刷新到主内存。
  • 当读一个 volatile 变量时,JMM 会把该线程对应的本地内存置为无效。线程接下来将从主内存中读取共享变量。

3. volatile的内存语义实现

通过读/写屏障,禁止部分读写和重排序。

posted @ 2022-03-15 16:24  护发师兄  阅读(44)  评论(0编辑  收藏  举报