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

外贸网站制作哪家快/优化内容

外贸网站制作哪家快,优化内容,营销型网站建设注意,花钱做网站要多少钱Hi! 我是小小,今天是本周的第六篇,主要内容是关于 volatile 关键字。前言volatile 关键字主要是用于指令重排序,常常用于保证内存的可见性和防止指令重排序。保证内存可见性内存可见性是指所有线程都能看到共享内存的最新的状态。例如&#x…

16e06e687075a3e959d6cb90f364ec58.png

Hi! 我是小小,今天是本周的第六篇,主要内容是关于 volatile 关键字。

前言

volatile 关键字主要是用于指令重排序,常常用于保证内存的可见性和防止指令重排序。

保证内存可见性

内存可见性是指所有线程都能看到共享内存的最新的状态。例如,在多线程环境中,加上 volatile 关键字以后,每个线程的内存会强制刷新到主内存中,实现每个线程都保证其关键字内存是最新的。

从一个例子说起

举一个失效的代码

public class MutableInteger { private int value; public int get(){ return value; } public void set(int value){ this.value = value; }}这份代码,在多线程环境下,是正常运行的,但是在非多线程环境下属于不正常运行的,因为 get 和 set 方法没有添加同步锁,如果线程一调用set方法,那么正在调用的get方法的线程二,可能会看到前值,也可能会看到后值。

解决办法相当的简单,直接加上 volatile 关键字。

private volatile int value;在上方代码中,加上 volatile 关键字以后,所有副线程的关键字的内存,会强制刷新到主线程中,实现每个线程中的变量关键字都能实时的获取到最新值。相当于给 get 和 set 方法加锁。

关于 volatile 关键字

java变量的读写主要分为以下几个关键字进行变量的读写。lock 把线程标识为独占状态。unlock 解除独占状态read 从主内存传输到工作内存load 装载进入工作内存use 把工作内存的值传递给执行引擎assign 回传工作内存的值store 把工作内存的值回传给主内存write 把 store 操作的值回传给主内存中

通过 read load use 三个关键字连续出现,以及,assign,store,write 这三个关键字连续出现,保证原子性。其控制如下图所示

bfc731aad2b6dab2a5fb8ae1ef9ba955.png

注意:volatile 关键字是一种非锁机制,这种机制可以避免锁引起的上下文的切换

禁止指令重排序

什么是指令重排序

在虚拟机层面,为了尽可能的减少内存操作速度远远慢于CPU运行速度带来的CPU空置的问题,虚拟机会按照一定的规则把编译后的class文件进行打乱。在硬件层面,CPU会把接受到的程序,和一批指令按照一定的规则进行从排序,同样是缓存和CPU速度的问题。被 volatile 关键字修饰的变量,会在之前添加一个 lock 汇编指令,用于强制防止指令从排序。

如何禁止

通过内存屏障实现,内存屏障分为 写屏障,读屏障,读写屏障。

编译器,在编译器层面,在编译器层面会对指令进行从排序,添加了 volatile 关键字以后会对指令进行从排序,这样可以显示的告知编译器应该避免生成的代码违背预期。机器相关:在多核机器下,由于程序是多线程运行的,操作系统,直接调用 CPU 所实现的内存屏障,在硬件层面,实现其原子性操作。关于作者

我是小小,一个生于二线,活在一线城市的程序猿,我是小小,我们下期再见。

6ea3b4b401b301f4976c483231688e52.png

小明菜市场

http://www.lbrq.cn/news/1103221.html

相关文章:

  • 网站建设服务中企动力/怎样创建网站或者网址
  • 日用品企业网站建设/百度网页链接
  • 网站建设费用的会计/东莞seo推广
  • 张家港网站开发制作/济南百度
  • 在线做六级阅读网站/启动互联全网营销推广
  • 潍坊做网站的网络公司/线上seo关键词优化软件工具
  • 昆明网站推广/谷歌浏览器app下载
  • 武汉网站建设可以吗/正规网络教育培训机构
  • 免费域名解析网站建设/seo主管招聘
  • 公司网站建设价位/最佳磁力吧cili8
  • 云南昆明网站建设/seo专业培训学费多少钱
  • wordpress 登录空白页/长沙网站seo推广
  • 权威的网站制作/百度网站登录
  • 海南网站建设费用/应用宝aso优化
  • 京东商城网站建设目的/苏州百度
  • 济南润尔网站建设技术公司/百度网址大全首页链接
  • 学做烘焙的网站/如何接广告赚钱
  • 深圳商城网站建设报价/网站建成后应该如何推广
  • 建设网站的发布与推广/seo零基础入门到精通200讲
  • 制作钓鱼网站属于什么罪/seo营销推广服务公司
  • 怎么建设网站网页/快速排名程序
  • 想象力做网站/seo简介
  • wordpress 下载页插件/seo排名优化公司哪家好
  • 葫芦岛市网站建设/河南seo关键词排名优化
  • 做网站投资多少钱/今日热点新闻2022
  • 个人做网站租云服务器/百度保障平台 客服
  • 制作公司网站的步骤/百度网盘资源链接入口
  • 设计联盟网站/免费域名怎么注册
  • 想做设计师需要学什么/长沙seo免费诊断
  • 做关于时尚网站的目的/成都网络推广中联无限
  • 【PTA数据结构 | C语言版】是不是堆
  • LP-MSPM0G3507学习--07定时器之二定时节拍
  • 机器视觉---深度图像存储格式
  • 吴恩达机器学习笔记(3)—线性代数回顾(可选)
  • OpenCV 入门知识:图片展示、摄像头捕获、控制鼠标及其 Trackbar(滑动条)生成!
  • 小明记账簿焕新记:从单色到多彩的主题进化之路