volatile理解与使用

来源:互联网 发布:知恩于心 感恩于行 编辑:程序博客网 时间:2024/06/10 11:41

对于volatile修饰的变量,jvm虚拟机只是保证从主内存加载到线程工作内存的值是最新的

例如假如线程1,线程2 在进行read,load 操作中,发现主内存中count的值都是5,那么都会加载这个最新的值

在线程1堆count进行修改之后,会write到主内存中,主内存中的count变量就会变为6

线程2由于已经进行read,load操作,在进行运算之后,也会更新主内存count的变量值为6

导致两个线程即使用volatile关键字修改之后,还是会存在并发的情况。

原创粉丝点击