volatile的理解

java内存模型

在多线程编程中,每个线程都会有自己的工作内存,在执行的时候,并不是直接从主内存获取变量的值,而是会从主内存中拷贝一份到自己的工作内存中。

volatile的作用

1.保证了数据的可见性

如果没有valatile关键字,那么线程在更新数据的值后,不会立即写到主存中,那么其他线程可能拿到的值就是以前未修改的值

加了volatile关键字,线程在更新值后,会立刻写到主存中,其他线程会感知到变化,就会重新从主存中获取数据..

2.保证了有序性

加入了volatile,他就会禁止进行指令重排序.

posted @ 2020-05-24 13:56  jesscia5  阅读(160)  评论(0编辑  收藏  举报