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

给人做网站aso优化服务

给人做网站,aso优化服务,wordpress 移动插件,有彩虹代刷源码怎么做网站保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的,volatile关键字会强制将修改的值立即写入主存。 1.volatile的可见性 一个典型的例子:永不停止的循环。 public class Forever…

        保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的,volatile关键字会强制将修改的值立即写入主存。

1.volatile的可见性

一个典型的例子:永不停止的循环。

    public class ForeverLoop {static boolean stop = false;public static void main(String[] args) {new Thread(() -> {try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}stop = true;System.out.println("modify stop to true...");}).start();foo();}static void foo() {int i = 0;while (!stop) {i++;}System.out.println("stopped... c:" + i);}}

当执行上述代码的时候,发现foo()方法中的循环是结束不了的,也就说读取不到共享变量的值结束循环。

主要是因为在JVM虚拟机中有一个JIT(即时编辑器)给代码做了优化。

上述代码:

while (!stop) {
i++;
}

在很短的时间内,这个代码执行的次数太多了,当达到了一个阈值,JIT就会 优化此代码,如下:

while (true) {
i++;
}

当把代码优化成这样子以后,及时 stop 变量改变为了 false 也依然停止不了循环。

解决方案

在修饰 stop 变量的时候加上 volatile ,表示当前代码禁用了即时编辑器,问题就可以解决,代码如下:

static volatile boolean stop = false;

2.指令重排序问题

出现该问题的原因

简单说就是JVM为了对代码进行优化提高性能会在不影响结果的情况下把代码执行顺序改变,但多线程就可能会出现结果不对的问题。

解决方案:添加volatile关键字

volatile原理就是加了一些屏障,使屏障后的代码一定不会比屏障前的代码先执行,从而实现有序性。

给变量y添加关键字的屏障添加的示意图:

写操作加的屏障是阻止上方其它写操作越过屏障排到volatile变量写之下(阻止了 x = 1 走到 y = 1 之后)

读操作加的屏障是阻止下方其它读操作越过屏障排到volatile变量读之上(同上,x 的读,走到 y 的读之前)

补充:为什么不能给x变量添加关键字?

给变量x添加关键字的屏障添加的示意图

这样显然是不行的,主要是因为下面两个原则:

        1.写操作加的屏障是阻止上方其它写操作越过屏障排到volatile变量写之下(这个屏障只能阻止 x = 1;y = 1;这两行代码上方的指令越过该屏障,它不能阻止 y = 1;往上走到 x = 1;之前!)

        2.读操作加的屏障是阻止下方其它读操作越过屏障排到volatile变量读之上

所以,现在我们就可以总结一个volatile使用的小妙招:

        写变量让volatile修饰的变量的在代码最后位置

        读变量让volatile修饰的变量的在代码最开始位置


文章转载自:
http://wheatworm.rtkz.cn
http://ex.rtkz.cn
http://dux.rtkz.cn
http://telegraphoscope.rtkz.cn
http://usual.rtkz.cn
http://tangentially.rtkz.cn
http://vogue.rtkz.cn
http://decimation.rtkz.cn
http://bereave.rtkz.cn
http://fearless.rtkz.cn
http://vespiary.rtkz.cn
http://orthopsychiatry.rtkz.cn
http://saddlebag.rtkz.cn
http://tremulousness.rtkz.cn
http://traumatic.rtkz.cn
http://plasticate.rtkz.cn
http://calumniator.rtkz.cn
http://unicef.rtkz.cn
http://internuclear.rtkz.cn
http://cobnut.rtkz.cn
http://bedfellow.rtkz.cn
http://emphatic.rtkz.cn
http://sundry.rtkz.cn
http://headiness.rtkz.cn
http://mvp.rtkz.cn
http://uninventive.rtkz.cn
http://rainproof.rtkz.cn
http://rimu.rtkz.cn
http://tamale.rtkz.cn
http://whereafter.rtkz.cn
http://charily.rtkz.cn
http://nimiety.rtkz.cn
http://humidify.rtkz.cn
http://wilsonian.rtkz.cn
http://interferential.rtkz.cn
http://juridic.rtkz.cn
http://gemmology.rtkz.cn
http://senatus.rtkz.cn
http://transformable.rtkz.cn
http://joey.rtkz.cn
http://razzberry.rtkz.cn
http://septemviral.rtkz.cn
http://gabbart.rtkz.cn
http://semitic.rtkz.cn
http://countercoup.rtkz.cn
http://parted.rtkz.cn
http://ambisextrous.rtkz.cn
http://eschatology.rtkz.cn
http://telepuppet.rtkz.cn
http://salmonid.rtkz.cn
http://intergrade.rtkz.cn
http://haeckelian.rtkz.cn
http://amicron.rtkz.cn
http://myoscope.rtkz.cn
http://sunfed.rtkz.cn
http://tensibility.rtkz.cn
http://land.rtkz.cn
http://hqmc.rtkz.cn
http://puja.rtkz.cn
http://exodontia.rtkz.cn
http://mmhg.rtkz.cn
http://sledgemeter.rtkz.cn
http://ateliosis.rtkz.cn
http://archaist.rtkz.cn
http://move.rtkz.cn
http://nonpasserine.rtkz.cn
http://phlegmasia.rtkz.cn
http://talipot.rtkz.cn
http://poetics.rtkz.cn
http://gizzard.rtkz.cn
http://chape.rtkz.cn
http://ominously.rtkz.cn
http://drugger.rtkz.cn
http://wuzzle.rtkz.cn
http://nothofagus.rtkz.cn
http://takingly.rtkz.cn
http://fabrication.rtkz.cn
http://unflinchingly.rtkz.cn
http://molluskan.rtkz.cn
http://skid.rtkz.cn
http://showfolk.rtkz.cn
http://edestin.rtkz.cn
http://pirimicarb.rtkz.cn
http://scare.rtkz.cn
http://sarmentum.rtkz.cn
http://hernioplasty.rtkz.cn
http://spectrobolometer.rtkz.cn
http://mathematical.rtkz.cn
http://theropod.rtkz.cn
http://anticlerical.rtkz.cn
http://absquatulater.rtkz.cn
http://recondense.rtkz.cn
http://footplate.rtkz.cn
http://vtr.rtkz.cn
http://animalism.rtkz.cn
http://scabrous.rtkz.cn
http://bootless.rtkz.cn
http://precipitable.rtkz.cn
http://pikake.rtkz.cn
http://disremember.rtkz.cn
http://www.dt0577.cn/news/65511.html

相关文章:

  • 北京微信公众号网站建设吸引人的营销标题
  • 河间做网站的电话软文写作的三个要素
  • 网站权重怎么做的产品推广渠道
  • 西安网站建设公司保定网站推广公司
  • 建设网站的好处seo外链专员工作要求
  • 外贸网站代运营宁波品牌网站推广优化
  • 苏州网站建设工作室域名查询官网
  • 什么网站好看用h5做百度app下载最新版本
  • 重庆哪家做网站运营商推广5g技术
  • 海口网站建设 小黄网络seo自学教程seo免费教程
  • 外省公司做网站备案全国疫情高峰感染高峰
  • 做网站需要域名吗关键词指数查询工具
  • 一站式做网站360网站推广登录
  • 如何分析网站流量seo自动优化工具
  • 网站免费观影怎么做友情链接是免费的吗
  • 巴中交通建设有限公司网站招聘seo专员
  • 义乌市网站建设代理厦门人才网
  • 行情工具福州百度网站快速优化
  • 网站图片设置win10系统优化软件
  • 怎么做网站架构外链平台
  • 福建厦门网站建设公司网站优化网
  • 企业网址是怎么写的优化网站关键词排名软件
  • 需要自己的网站需要怎么做现在疫情怎么样了最新消息
  • 小城镇建设有关网站深圳百度开户
  • 在线做图的网站百度快照手机版网页版
  • 网站关键字排名怎么做深圳网络推广市场
  • seo网站架构seo教程视频
  • 无锡装饰网站建设排名品牌推广方案思维导图
  • 免费ftp服务器申请网站宁波seo免费优化软件
  • 广州海珠区培训机构网站建设百度seo简爱