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

提供企业门户网站建设文山网站建设联系电话

提供企业门户网站建设,文山网站建设联系电话,中国有几个搜索引擎,苏州网站公司导致的原因 内存可见性问题的出现主要是因为编译器优化多线程导致的 示例代码 package 线程安全问题;import java.util.Scanner;/*** Created with IntelliJ IDEA.* Description:* User: wuyulin* Date: 2023-07-26* Time: 13:49*/ public class Demo2 {private volatile sta…

导致的原因

        内存可见性问题的出现主要是因为编译器优化多线程导致的

示例代码

package 线程安全问题;import java.util.Scanner;/*** Created with IntelliJ IDEA.* Description:* User: wuyulin* Date: 2023-07-26* Time: 13:49*/
public class Demo2 {private volatile static int isQuit=0;public static void main(String[] args) {Thread A=new Thread(()->{while (isQuit==0){}});Thread B=new Thread(()->{Scanner sc=new Scanner(System.in);System.out.print("isQuit=");isQuit=sc.nextInt();});A.start();B.start();}
}

出现的问题

        在上述代码中如果isQuit成员变量不加上volatile关键字的话,该程序就会出现bug,即使在B线程中修改了isQuit的值,在A线程中依然不会退出循环

出现问题的原因

        出现该问题的原因是编译器对我们的代码进行了优化

         因为isQuit==0分为两步操作,1.将isQuit从内存中读取到寄存器中,2.在寄存器中进行isQuit与0的比较
    而从内存中读取数据到寄存器中要消耗很长的时间,在寄存器中进行isQuit与0的比较消耗的时间很短
    编译器发现经过了很多次的循环isQuit的值都没有改变,于是做了一个大胆的决定,将从内存中读取isQuit这个操作优化掉,采用读取寄存器中的值,效率便得到了极大的提高
    但是此时在B线程中修改isQuit在内存中的值,A线程由于已经不在内存中读取isQuit的值了,所以A线程的循环不会受到影响,就导致了无法停止A线程的循环

 
解决的方法

        解决的方法:在isQuit成员变量声明时加上volatile(易变的)关键字,表示该成员变量是易变的,此时编译器就不会优化掉去内存中读取isQuit值的操作,这样B线程改变了内存中isQuit的值,A线程便能够读取到,结束循环

http://www.yayakq.cn/news/770715/

相关文章:

  • 网站建设费用价格表网站创建
  • 网站开发广告怎么写响应式个人网站模板下载
  • 网站建设共享ip网站建设的服务怎么样
  • 如何防止php网站被挂马大白兔网络营销策划书
  • wordpress子目录建站seo优化信
  • 视频分享网站怎么做河南省建设厅网站 吴浩
  • 建设网站找哪里开发门户网站报价
  • 南通外贸网站制作商业网点建设开发中心
  • 黄页网站大全在线看免费山西专业制作网站
  • 建设网站需要api吗网络软文名词解释
  • 嘉祥网站建设关键词快速排名平台
  • 刷赞网站空间免费私活网站开发多少钱
  • 青岛网站建设 熊掌号长春网站建设制作
  • 深圳网站设计首选柚米app开发需要多久
  • 麦积区建设局网站软件开发培训学校排名
  • 建设动漫网站的目的WordPress电影网
  • 电商网站建设计入什么科目石英手表网站
  • 设计的好网站泰安手机网站
  • 门户网站推广方案生产做网站表带的制造厂家
  • 琴童少儿音乐创作网站建设家具品牌网站
  • 杭州网站推广技巧辽宁建设工程信息网报名步骤
  • xampp本地搭建网站电子商务网站开发设计案例—易趣网电子商务网站
  • 东莞视频课程网站建设w网站建设需求说明
  • 专门做网站的公司与外包公司没有基础学做网站
  • 新网站建设脑图网站建设需要哪种人才
  • 做调查问卷权威网站wordpress显示特效
  • 求职招聘网站排名前十名传统企业建设营销型网站
  • 湖南做网站 尖端磐石网络h5百度百科
  • 网站编程学习建网站公司郑州
  • 聊城做网站的网络公司wordpress架设服务器