浅谈Java多线程(volatile实现可见性)

来源:互联网 发布:大数据 互联网对口专业 编辑:程序博客网 时间:2024/05/21 09:53

volatile关键字能保证变量的可见性,但不能保证volatile变量复合操作的原子性。


简单地说,volatile变量每次被线程访问时,都被迫从主内存中重读该变量值。

当该变量发生变化时,会强迫线程将最新的值刷新到主内存。

因此,任何时刻不同线程总能看到该变量的最新值。


其实Java在语言层面还有第三种方式实现内存可见性,final,它修饰的变量不可更改。






小结:volatile比synchronized更轻量级,但没有它应用广泛。






0 0