码迷,mamicode.com
首页 > 其他好文 > 详细

VolatileDemo

时间:2018-05-29 00:29:31      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:关键字   协议   adl   restore   自己   排序   防止   create   void   

技术分享图片
package com.fh.interview;

/**
 * volitile关键字学习
 *
 *
 * 缓存一致性协议
 * 每个处理器通过嗅探在总线上传播的数据来检查自己缓存的值是不是过期
 *
 *
 * 1、Lock前缀的指令会引起处理器缓存写回内存;
   2、一个处理器的缓存回写到内存会导致其他处理器的缓存失效;
   3、当处理器发现本地缓存失效后,就会从内存中重读该变量数据,即可以获取当前最新值。


 在每个volatile写操作的前面插入一个StoreStore屏障;
 在每个volatile写操作的后面插入一个StoreLoad屏障;
 在每个volatile读操作的后面插入一个LoadLoad屏障;
 在每个volatile读操作的后面插入一个LoadStore屏障。
 需要注意的是:volatile写是在前面和后面分别插入内存屏障,而volatile读操作是在后面插入两个内存屏障
 StoreStore屏障:禁止上面的普通写和下面的volatile写重排序;
 StoreLoad屏障:防止上面的volatile写与下面可能有的volatile读/写重排序
 LoadLoad屏障:禁止下面所有的普通读操作和上面的volatile读重排序
 LoadStore屏障:禁止下面所有的普通写操作和上面的volatile读重排序


 * @author
 * @create 2018-05-27 下午10:06
 **/
public class VolitileDemo {

    public volatile String message = "000";

    public void test(){

    }
}
View Code

 

VolatileDemo

标签:关键字   协议   adl   restore   自己   排序   防止   create   void   

原文地址:https://www.cnblogs.com/nihaofenghao/p/9102581.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!