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

交友app网站建设深圳网约车租赁公司哪家好

交友app网站建设,深圳网约车租赁公司哪家好,郑州网站建设哪家好,网站建设软文Java内存模型可以说是Java并发的底层支持#xff0c;了解Java内存模型才能正在了解Java并发。内存模型在内存中设置一个变量value 1#xff1b;那么其他线程能在什么时候读取到这个结果呢#xff1f;有可能不能立即甚至永远都读不到。比如指令顺序与源代码中的…Java内存模型可以说是Java并发的底层支持了解Java内存模型才能正在了解Java并发。内存模型在内存中设置一个变量value 1那么其他线程能在什么时候读取到这个结果呢有可能不能立即甚至永远都读不到。比如指令顺序与源代码中的顺序不同编译器会把变量保存在寄存器而不是内存中处理器可以采用乱序或并行等方式来执行指令缓存可能会改变将写入变量提交到主内存的次序保存在处理器本地缓存中的值其他处理器是不可见的这些情况都会导致其他线程不能读取到变量的最新值。而Java内存模型(Java memory Model,简称JMM)则是规定了JVM在什么时候对变量的修改对其他线程可见。在多核处理器中每个处理器都有自己的缓存并且定期地与主内存进行协调不同的处理器架构中提供了不同级别的缓存一致性。在现在的CPU中分了多级内存缓存比如寄存器、L1、L2、L3、内存等每种处理器都有各自的规则和处理方式而要保证修改变量对其他线程可见的难度就很大。所以在JMM中抽象出来只分工作内存、主内存。主内存主要存共享变量工作内存为每个线程拥有存放线程需要的共享变量副本。各个线程只能读、改自己工作线程的数据不能直接操作主内存的变量线程修改变量时先修改工作内存变量再同步到主内存当中。在多线程环境中维护程序的串行性将会导致很大的性能开销所以只有当多个线程要共享数据时才必须协调它们之间的操作并且JVM依赖程序通过同步操作来找出这些协调操作在何时发生。通过只分两种内存就简单很多了。Happens-Before规则上一节说到JVM通过依赖同步操作来找出协调操作在何时发生而JMM就是通过各种操作来定义的。JMM对程序中的所有操作定义了一个偏序关系称为Happens-Before。Happens-before简单解释下如果第一个操作Happens-before第二个操作也就是说第一个操作对于第二个操作时可见的也就是第二个操作能够看到第一个操作的结果。而Happens-before主要包含以下规则程序顺序规则一个线程内肯定要保证执行顺序比如两步代码前一步执行肯定要在下一步执行之前如果不能保证规则那么如果后一步依赖前一步的结果那么肯定会出现错误。不过这个规则和指令重排冲突但是执行重排是在保证执行结果依然符合Happens-before执行的结果下才重排所以并不冲突。监视器规则对同一个锁肯定前面一个释放了锁后面一个才能获取到锁只有获取到锁才能释放锁。volatile变量规则volatile修饰的变量在一个线程修改后其他线程一定能够看到最新值。线程启动规则在主线程执行一个子线程那么子线程的run方法一定能够看到主方法调用子线程的start方法之前的操作。线程结束规则主线程调用了子线程的start后如果再调用join方法那么join方法肯定能看到子线程run方法执行的结果。中断规则对线程执行Interrupt方法后那么执行interrupted和isInterrupted都能看到结果。终结器规则对象的构造函数必须在对象的终结器执行前完成。传递性A操作在B之前B在C之前那么A一定在C之前也就是C一定能够看到A执行的结果。在多线程中每个线程每段代码执行的时间是不确定的而Happens-before则保证了单个线程内执行顺序同时也保证在多线程哪些情况下有先后顺序。比如比如在线程A中执行了线程B的start方法和B线程的join方法那么B线程的run方法肯定在A在调用B的start方法之后执行也就是B中的run方法能看到之前的执行结果。同样join方法一定是run方法结束以后才能执行也就是join之后的程序能够看到run执行的结果。单例模式的双重检查单例模式的一种实现方式代码如下图volatile保证了变量的可见性就是前面讲到的volatile变量规则在第二次验证变量singleton时才能得到的正确。如果变量没有用volatile修饰一个线程初始化了初始化结果可能还在工作内存中即使同步到主内存中但是如果没有同步到其他内存中那么其他线程就可能再次初始化。总结JMM实际上是由定义的一系列操作组成这些操作确定了Java的基础特性尤其在多线程并发方面它主要对重排序、原子性、内存可见性这三个方面维护保证了多线程的正确执行。Java程序员日常学习笔记如理解有误欢迎各位交流讨论
http://www.zqtcl.cn/news/750946/

相关文章:

  • 淮南网站优化公司国内什么网站用asp.net
  • 做数据网站带网站的图片素材
  • 大方县住房城乡建设局网站wordpress 连接flickr
  • 国家建设部网站倪虹邢台新闻最新事件
  • 杭州网站 建设广州金将令做网站怎么样
  • 苏州科建设交通学院网站地方网站类型
  • 怎样做投资理财网站城乡建设部网站第35号令
  • 南昌集团网站建设wordpress去掉rss订阅
  • 郑州做网站的外包公司有哪些宁波 电商平台网站建设
  • 网站平台开发多少钱wordpress文章展示
  • 汕尾市企业网站seo点击软件建设一个网站的步骤有哪些
  • 备案上个人网站和企业网站的区别实名认证域名可以做电影网站吗
  • 顾氏网站建设有限公司怎么样memcache安装wordpress
  • 邯郸网站建设渠道免费做全网解析电影网站赚钱
  • 中铁中基建设集团网站东莞网络优化哪家公司好
  • wordpress免费建站合肥关键词网站排名
  • 中铁建设集团门户网登录网站自己可以建设环保公益网站吗
  • 国内电子商务网站有哪些网站升级中html
  • 影响网站加载速度顺德做网站那家好
  • 如何备份网站的百度怎样建立网站
  • 如何建立网站视频教程湖北seo关键词排名优化软件
  • 南宁网站建设推荐q479185700顶上新公司网站建设流程
  • 石家庄城乡建设局网站四川网络营销
  • 网站更换名称需要重新备案吗赣州章贡区二手房出售信息
  • 浙江恒元建设网站wordpress 主题 英文
  • 甘肃网站建设推广做暧昧免费视频大全网站
  • 科技公司网站系统个人网站模板大全
  • 建网站源码建站详解做加油机公司网站
  • 北海做网站有哪家网站布局策划案
  • 做app网站的软件有哪些内容吗本地网站建设公司