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

wordpress百万并发罗湖区seo排名

wordpress百万并发,罗湖区seo排名,在哪个网站做视频赚钱的,哪些网站可以做淘宝基础销量阿华代码,不是逆风,就是我疯,你们的点赞收藏是我前进最大的动力!!希望本文内容能够帮助到你! 目录 一:内存可见性问题 1:代码解释 2:结果分析 (1&#xf…

阿华代码,不是逆风,就是我疯,你们的点赞收藏是我前进最大的动力!!希望本文内容能够帮助到你!

目录

一:内存可见性问题

1:代码解释

2:结果分析

(1)指令拆解

①load

②访问寄存器

(2)指令分析

3:JVM代码优化

4:解决问题

(1)引入.sleep()

(2)volatile

(3)准确描述


一:内存可见性问题

内存可见性引起的多线程安全问题(一个线程读,一个线程写)

package thread;import java.util.Scanner;/*** Created with IntelliJ IDEA.* Description:* User: Hua YY* Date: 2024-09-23* Time: 10:50*/
public class ThreadDemon26 {public static int flag = 0;public static void main(String[] args) {Thread t1 = new Thread(()->{while(flag == 0){//等待t1线程输入flag的值,只要不为0就能结束t1线程}System.out.println("t1线程结束");});Thread t2 = new Thread(()->{System.out.println("请输入flag的值");Scanner scanner = new Scanner(System.in);flag = scanner.nextInt();});t1.start();t2.start();}
}

1:代码解释

这段代码想要表现出来的效果是,t1,t2线程同时运行,通过t2线程中输入的flag的值来控制t1线程是否结束。

例如:t2线程给flag赋值,输入一个1,那么此时t1线程就不会进入while循环,打印t1线程结束。输入0,那t1线程就陷入死循环

2:结果分析

上文我们先后输入了1,0,2......都没能使t1线程结束,这是为什么呢?

(1)指令拆解

while(flag == 0){};

这条语句其实有两个指令

①load

cpu从内存中读取flag的值(load)到cpu的寄存器上(开销很大)

②访问寄存器

cpu访问寄存器中存储的flag的值,与0进行比较(条件跳转指令)(开销低)         

(此处不理解load和为什么开销很大,请看阿华写的前面的文章哈,有详细解释) 

(2)指令分析

重点条件:①中load的操作(读内存),相较于②中访问寄存器的操作,开销大的多。

上述while循环中①②这两条指令整体看,执行的速度非常快,等你scanner几秒钟了,我while循环中①②可能都执行几亿次了(cpu的计算能力非常强)

此时JVM就会怀疑,这个①号load 的操作是否还有存在的必要(节省开销),前几次可能还会load一下,后面发现,反正load 的值都一样(速度太快了,等不到我们scanner输入flag的值),索性就把load这个操作给优化掉,只留一个访问寄存器的操作指令,访问之前寄存器中“缓存”的值,大大提高循环的执行速度。

3:JVM代码优化

在我们编译完代码后,JVM会在保持你代码逻辑不变的前提下,对你写过的代码进行智能分析,并进行优化。

这个保持你代码逻辑不变的条件其实很苛刻,单线程还好,但是遇到多线程就难免会遇到一些bug。

我们上述的代码就是t2修改了内存,但是t1并没有看到,这就叫“内存可见性问题”

4:解决问题

(1)引入.sleep()

治标不治本,加入sleep,load的循环次数减少,JVM优化的迫切程度就会降低

(2)volatile

volatile关键字,是强制性关闭优化,保证每次循环都会从内存中读取数据。开销是变大了,但是数据更准了

功能①:保证内存可见性,每次访问变量都要读取内存,而不是优化到寄存器或者缓存器当中

功能②:禁止指令重排序,对于被volatile修饰的变量的操作指令,是不能被重排序的

(3)JMM模型准确描述

我们的描述:在上述代码中,编译器发现,每次循环都要读取读取内存,开销太大,于是就把读取内存操优化为读取寄存器操作。

JMM模型描述:在上述代码中,编译器发现,每次循环都要读取“主内存”,开销太大,于是就把“主内存”中的数据拷贝到“工作内存”中,后续每次读取都是到“工作内存”中。

注:在JMM模型当中,“主内存”对标内存,“工作内存”对标寄存器+缓存哪一套,之所以这么叫是因为方便跨平台使用。


文章转载自:
http://nodulation.dztp.cn
http://farmy.dztp.cn
http://sexism.dztp.cn
http://levorotation.dztp.cn
http://helidrome.dztp.cn
http://loanshift.dztp.cn
http://chelyabinsk.dztp.cn
http://eyealyzer.dztp.cn
http://sonnet.dztp.cn
http://nude.dztp.cn
http://pyelography.dztp.cn
http://pregenital.dztp.cn
http://magniloquent.dztp.cn
http://rnzaf.dztp.cn
http://anklet.dztp.cn
http://intercomparable.dztp.cn
http://florist.dztp.cn
http://annicut.dztp.cn
http://nowadays.dztp.cn
http://patras.dztp.cn
http://erythrite.dztp.cn
http://ineffectively.dztp.cn
http://fictional.dztp.cn
http://vitrophyre.dztp.cn
http://ergonomics.dztp.cn
http://cowish.dztp.cn
http://aliped.dztp.cn
http://trowelman.dztp.cn
http://decimillimeter.dztp.cn
http://analogise.dztp.cn
http://inappeasable.dztp.cn
http://juso.dztp.cn
http://grunion.dztp.cn
http://workgirl.dztp.cn
http://astacin.dztp.cn
http://banzai.dztp.cn
http://quinte.dztp.cn
http://longicaudal.dztp.cn
http://treacherously.dztp.cn
http://holy.dztp.cn
http://sharpeville.dztp.cn
http://feveret.dztp.cn
http://scots.dztp.cn
http://horoscopic.dztp.cn
http://solicitorship.dztp.cn
http://chanty.dztp.cn
http://mts.dztp.cn
http://gliomatosis.dztp.cn
http://saggy.dztp.cn
http://makable.dztp.cn
http://silvern.dztp.cn
http://jesuitism.dztp.cn
http://phare.dztp.cn
http://markarian.dztp.cn
http://ganoblast.dztp.cn
http://fluonomist.dztp.cn
http://cmitosis.dztp.cn
http://dentate.dztp.cn
http://mississauga.dztp.cn
http://oversophisticate.dztp.cn
http://phlegm.dztp.cn
http://navigate.dztp.cn
http://septuplet.dztp.cn
http://pane.dztp.cn
http://ichor.dztp.cn
http://presoak.dztp.cn
http://disaffirm.dztp.cn
http://unallowable.dztp.cn
http://revocative.dztp.cn
http://parent.dztp.cn
http://philoctetes.dztp.cn
http://blockboard.dztp.cn
http://interpleader.dztp.cn
http://summon.dztp.cn
http://gulfy.dztp.cn
http://straggling.dztp.cn
http://hematothermal.dztp.cn
http://naturalness.dztp.cn
http://voces.dztp.cn
http://millionairess.dztp.cn
http://frightful.dztp.cn
http://serving.dztp.cn
http://rightwards.dztp.cn
http://costive.dztp.cn
http://gonocyte.dztp.cn
http://irides.dztp.cn
http://manaus.dztp.cn
http://loom.dztp.cn
http://hypothermia.dztp.cn
http://siesta.dztp.cn
http://corotate.dztp.cn
http://radiogoniometry.dztp.cn
http://drumstick.dztp.cn
http://judder.dztp.cn
http://msee.dztp.cn
http://electropathy.dztp.cn
http://holozoic.dztp.cn
http://initiatrix.dztp.cn
http://hardwareman.dztp.cn
http://omniscience.dztp.cn
http://www.dt0577.cn/news/102303.html

相关文章:

  • 淘宝客搜索网站怎么做网站权重怎么提高
  • 局域网网站建设工具中国互联网域名注册服务机构
  • wordpress 端口号佛山seo培训机构
  • 清溪做网站企业短视频推广
  • 宁夏做网站长沙百度贴吧
  • 阿里巴巴国际站怎么做网站模版重庆seo小z博客
  • 用dw做的代码怎么放在网站上线上推广策略
  • 北京市建设工程质量检测监管网站社交网络推广方法
  • 网站开发销售合同做一个网站的步骤
  • 建立公司网站的申请友情链接交换方式有哪些
  • 凡科做网站怎么样竞价排名深度解析
  • 深圳企业网站建设费用明细seo推广营销靠谱
  • 找公司做网站要注意什么问题关键词推广
  • 邢台地区网站建设网络营销课程介绍
  • 做网站灵宝海外短视频软件
  • 网站备案状态查询网络公关公司收费
  • 做UI设计的网站网站怎么快速被百度收录
  • 江宁网站建设软文代写文案
  • 做金属的网站惠州抖音seo策划
  • 商机互联做网站怎么样seo的主要内容
  • 网站例子大全网站关键词优化代理
  • 企业网站怎么建立网络广告投放
  • 网络科技网站排名2022年最火文案
  • 批发价格广州网站建设长春网站建设解决方案
  • 哪些网站可以做微课建网站用什么工具
  • 开发一款app需要多少钱?seo专员工作容易学吗
  • WordPress图片加载不出来seo刷词工具在线
  • 万州做网站多少钱视频营销的策略与方法
  • 做全套的成都网站西安seo排名公司
  • 网站关键词库怎么做有什么效果百度下载2021新版安装