VolatileDemo

Posted nihaofenghao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VolatileDemo相关的知识,希望对你有一定的参考价值。

技术分享图片
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的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段6——CSS选择器

VSCode自定义代码片段——声明函数