volatile相当于轻量级锁

1,与锁不同的是,volatile不具有排他性,也不会导致上下文切换.

2,与锁相同的是,JVM实现volatile的有序性和可见性的保证也是借助内存屏障.

volatile变量写操作相当于释放锁,读操作相当于获得锁---JVM通过在volatile变量写之前插入释放屏障,在读之后插入获取屏障.

这种成对的释放屏障和获取屏障保证了volatile的有序性.

同样的,JVM在volatile变量写操作之后插入存储屏障,在读操作之前插入加载屏障,保证volatile变量的可见性

相关文章:

  • 2021-10-29
  • 2021-07-31
  • 2021-12-04
  • 2021-12-04
  • 2021-08-13
  • 2021-05-21
  • 2021-07-10
猜你喜欢
  • 2021-07-03
  • 2021-06-09
  • 2022-01-03
  • 2021-12-13
  • 2022-01-20
  • 2022-12-23
相关资源
相似解决方案