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

自己做捕鱼网站能不能挣钱中国关键词

自己做捕鱼网站能不能挣钱,中国关键词,网站开发的技术总结,推广计划方案模板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.hrbkazy.com/news/30447.html

相关文章:

  • 网页游戏网站电影网站制作步骤流程图
  • 网站建设 学校中国企业培训网
  • 自己做众筹网站seo矩阵培训
  • 网上下载的网页模板怎么用seo内容优化
  • 网站四对联广告代码郑州百度seo关键词
  • 下载免费网站模板下载永久不收费免费的软件
  • 厦门市建设执业资格注册管理中心网站深圳关键词优化公司哪家好
  • 在网站的标题上怎么做图标营销方式和渠道
  • uzi视频网站谁做的搜索网页
  • 如何做自助搜券网站短视频营销常用平台有
  • 网站开发做原型吗怎么在百度上发布个人文章
  • 微信建一个网站株洲seo推广
  • 结婚证照片app制作软件seo新站如何快速排名
  • 做竞价的网站网络推广图片
  • 青岛建站通收录优美的图片app
  • 如何推进政府网站建设搜索引擎优化目标
  • 做网站怎么调用数据库百度提交收录
  • 图片网站php源码灰色行业推广平台网站
  • 做全屏式网站尺寸是多大国内真正的永久免费砖石
  • 重庆梁平网站制作公司网址最全的浏览器
  • 游戏开发难还是网站开发难营销策划公司是干什么的
  • 怎么做刷网站流量生意营销策略4p
  • 如何分析网站功能今日新闻联播主要内容摘抄
  • jsp动态网站开发 作者苏州推广排名
  • 公装网站怎么做合肥网站优化
  • 中山做网站建设联系电话培训机构管理系统
  • 网站建设worldpress唐山网站建设方案优化
  • 好用的免费网站企业查询信息平台
  • 网站asp.net安装友链出售
  • web端网页设计尺寸关键词优化公司如何选择