当前位置: 首页 > news >正文

金融网站如何做设计方案织梦wordpress建站

金融网站如何做设计方案,织梦wordpress建站,怎么和网站合作推广,服务器及网站建设的特点Java内存模型(JMM)中的内存屏障是一种保证内存可见性、顺序性的底层机制。它们是一组指令,用于在多线程环境中确保内存操作的有序性和可见性。内存屏障主要分为四类:LoadLoad、StoreStore、LoadStore和StoreLoad。 内存屏障的类型…

Java内存模型(JMM)中的内存屏障是一种保证内存可见性、顺序性的底层机制。它们是一组指令,用于在多线程环境中确保内存操作的有序性和可见性。内存屏障主要分为四类:LoadLoad、StoreStore、LoadStore和StoreLoad。

内存屏障的类型

  1. LoadLoad屏障:确保LoadLoad屏障前的读操作不会被重排序到屏障后的读操作之后。
  2. StoreStore屏障:确保StoreStore屏障前的写操作不会被重排序到屏障后的写操作之后。
  3. LoadStore屏障:确保LoadStore屏障前的读操作不会被重排序到屏障后的写操作之后。
  4. StoreLoad屏障:确保StoreLoad屏障前的写操作不会被重排序到屏障后的读操作之后。这是最强的一种屏障,因为它同时阻止了前方的写和读操作被重排序到屏障之后。

内存屏障在Java中的应用

在Java中,volatile变量的读写,synchronized的锁的获取与释放,以及final字段的写操作,都会涉及到内存屏障的使用,来保证操作的有序性和可见性。

volatile变量
  • 写volatile变量:在写volatile变量之后,会插入一个StoreStore屏障,保证写操作之前的所有普通写(非volatile写)都完成;还会插入一个StoreLoad屏障,确保之后所有的读写操作都能看到这个volatile写。

  • 读volatile变量:在读volatile变量之前,会插入一个LoadLoad屏障,以及一个LoadStore屏障,确保volatile读操作之前的所有读操作都完成。

synchronized
  • 进入synchronized块:会插入一个LoadLoad屏障和一个LoadStore屏障,确保后续的读操作可以看到之前已经发生的写操作。

  • 退出synchronized块:会插入一个StoreStore屏障和一个StoreLoad屏障,保证锁释放之前的所有操作(包括所有的读写操作)都完成。

代码演示

Java代码本身并不直接操作内存屏障,但可以通过Unsafe类来模拟内存屏障的效果。以下是一个简化的示例,不是直接在Java代码中使用的实际模式,因为JMM的内存屏障是自动管理的。

class MemoryBarrierExample {private volatile int flag = 0;private int ordinaryVar = 1;public void write() {ordinaryVar = 2; // 普通写操作flag = 1; // volatile写,带有StoreStore屏障和StoreLoad屏障}public void read() {int localFlag = flag; // volatile读,带有LoadLoad屏障和LoadStore屏障int localVar = ordinaryVar; // 普通读操作System.out.println("localFlag: " + localFlag + ", localVar: " + localVar);}
}

这个例子中,write方法先进行了一个普通的写操作,然后写入了一个volatile变量,这将插入必要的内存屏障。read方法首先读取了volatile变量,确保所有之前的写操作对当前线程可见,然后再进行普通的读操作。

总结

虽然Java程序员在编写日常代码时不直接与内存屏障打交道,了解内存屏障的工作原理对于理解JMM的内存可见性和操作的有序性至关重要。通过对volatile变量的操作、synchronized块的进入和退出,以及final字段的写操作,Java在底层自动插入相应的内存屏障,从而保证多线程环境中的内存一致性和线程安全。

http://www.bjxfkj.com.cn/article/110811.html

相关文章:

  • 现在c 做网站用什么框架学字体网站
  • 太原网站搜索优化中小型互联网企业有哪些
  • 网站怎么才可以不备案西安成品网站建设
  • 专业建设网站外包泉州安全教育平台
  • 奇胜网络 邯郸网站建设哪些网上订餐的网站做的好
  • xml网站地图制作wordpress汉化模板
  • 寺庙招人做网站维护吗wordpress 文章 置顶
  • php房产中介网站源码可视网站开发工具
  • 乱起封神是那个网站开发的?wordpress Suffusion
  • 宁波自适应网站建设建设银行信用卡积分兑换话费网站
  • 网站建设 客户同程山西太原建设银行招聘网站
  • 企业展示建设网站外贸网站外贸网站建设行吗
  • 做电影网站被找版权问题怎么处理泰安网站建设泽讯
  • 安徽建设学校网站邢台信息港二手车出售
  • 网站开发用哪个软件好产品摄影网站推荐
  • 301网站重定向怎么做做内衣的网站好
  • 海宏集团网站建设方案台州手机端建站模板
  • 做网站 怎么发布网站建设广告图片
  • 网站建设中最基本的决策乌镇网站建设标书
  • 兴仁市建设局网站wordpress 嵌入网页
  • 佛山网站快速排名提升链接在线缩短
  • 中小型网站建设与管理网站建设教程asp
  • 用自己的电脑做网站google store
  • 网站原型图大小做网站必须要公司才能做吗
  • 浙江省住房和城乡建设厅官方网站慧达seo免登录发布
  • 广州网站推广电话php一键建站
  • 网站弹窗怎么做重庆网站开发设计公司
  • 南京建设企业网站建站公司 知乎 discuz
  • 企业网站制作设seo sem是指什么意思
  • 绍兴企业免费建站手机网站建设需求分析