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

辽宁网站建设招标杭州app建设

辽宁网站建设招标,杭州app建设,outstock. wordpress,上海 建设工程质量监督站网站1 JMM(Java Memory Model) 1 概述 Java内存模型(Java Memory Model简称JMM)是一种抽象的概念#xff0c;并不真实存在#xff0c;它描述的一组规则或者规范。通过这些规则、规范定义了程序中各个变量的访问方式。jvm运行的程序的实体是线程#xff0c;而每个线程运行时并不真实存在它描述的一组规则或者规范。通过这些规则、规范定义了程序中各个变量的访问方式。jvm运行的程序的实体是线程而每个线程运行时都会创建一个工作内存也叫栈空间来保存线程所有的私有变量。而JMM内存模型规范中规定所有的变量都存储在主内存中而主内存中的变量是所有的线程都可以共享的而对主内存中的变量进行操作时必须在线程的工作内存进行操作首先将主内存的变量copy到工作内存进行操作后再将变量刷回到主内存中。所有线程只有通过主内存来进行通信。 JMM描述的是对程序中变量访问方式的规则规范 JVM运行程序的实体是线程每个线程有其工作空间用于存储私有变量 JMM规定所有的变量需存储在主内存中主内存的变量是所有线程共享的 对主内存的变量操作需要将主内存变量copy到线程的工作空间 在线程工作空间操作完之后刷回主内存 2 可见性原子性与有序性 1 原子性 原子性指的是一个操作是不可中断的即使是在多线程环境下一个操作一旦开始就不会被其他线程给打断。 在java中对基本的数据类型的操作都是原子性的操作但是要注意的是对于32位系统的操作对于long、double类型的并不是原子性操作对于基本数据类型byte,short,int,float,boolean,char读写是原子操作。因为对于32位的操作系统来说每次读写都是32位而doubel、long则是64位存储单位。就会导致一个线程操作完前面32位后另一个线程刚好读到后面的32位这样一来一个64位被两个线程分别读取。 2 可见性 可见性指的是当一个共享变量被一个线程修改后其他线程是否能够立即感知到。对于串行执行的程序是不存在可见性当一个线程修改了共享变量后后续的线程都能感知到共享变量的变化也能读取到最新的值所以对于串行程序来讲是不存在可见性问题。 对于多线程程序就不一定了前面分析过对于共享变量的操作线程都是将主内存的变量copy到工作内存进行操作后在赋值到主内存中。这样就会导致一个线程改了之后还未回写到主内存其余线程就无法感知到变量的更新线程之间的工作内存是不可见的。另外指令重排序以及编译器优化也会导致可见性的问题。 3 有序性 有序性是指对于单线程的代码我们总是认为程序是按照代码的顺序进行执行对于单线程的场景这样理解是没有问题但是在多线程情况下 程序就会可能发生乱序的情况编译器编译成机器码指令后指令可能会被重排序重排序的指令并不能保证与没有排序前的保持一致。 在java程序中倘若在本线程内所有的操作都可视为有序性在多线程环境下一个线程观察另外一个线程都视为无顺序可言。 3 JMM如何解决原子性可见性有序性 1 原子性问题 除了jvm自身提供的对基本类型的原子性操作以外可以通过synchronized和Lock实现原子性。synchronized与lock在同一时刻始终只会存在一个线程访问对应的代码块。 2 可见性问题 volatile关键字保证了可见性。当一个共享变量被volatile修饰时它会保证共享变量修改的值立即被其他线程可见即修改的值立即刷新到主内存当其它线程去需要读取变量时从主内存中读取。synchronized和Lock也保证了可见性。因为同一时刻只有一个线程能访问同步代码块所以是能保证可见性。 3 有序性问题 volatile关键字保证了有序性synchronized和Lock也保证了有序性因为同一时刻只允许一个线程访问同步代码块自然保证了线程之间在同步代码块的有序执行。 2 对象内存布局 1 对象头区 对象标记 锁标记 是否偏向 hashCode值 对象分代年龄 ✨对象头Mark区四位二进制0000-1111 -- 最多15轮GC 类元指针: 指向方法区中的类元信息 java底层实现反射的基础 数组长度 2 实例数据区 真正属性信息的值 3 对齐填充区 为了保证对象是8字节的倍数
http://www.yutouwan.com/news/391615/

相关文章:

  • asp网站开发环境搭建东莞市企业招聘信息网
  • 网站开发主要流程wordpress 音乐 页面
  • 免费流程图网站wordpress访问
  • 淘客怎么做推广网站凡客诚品官网衬衫
  • html5 手机网站页面实例楼市最新消息
  • 德州网站建设教程做网站 做app好
  • 阿里云个人怎么免费做网站上海建站模板源码
  • 昆明平台网站开发四川建设人才网官网证书查询
  • 很多年前的51网站现在有哪些网址
  • phpcms多个网站上海公司名字
  • 资质类网站如何做优化建设网站南沙
  • 做娱乐网站重庆网站建设学习
  • 设计本网站是用什么做的网络营销专业背景
  • 新手自己建设一个网站淘宝免费推广软件
  • aspcms建站统一门户网站
  • wordpress建站不知道密码郑州网络推广广告公司
  • 网站开发合同的时间期限界定网站运营推广怎么做
  • 三台县城乡建设网网站wordpress+翻页函数
  • 网站建设常规自适应wordpress remove_action
  • 建设地产网站建设网站开发公司
  • 怎么把网站做成appdw个人主页制作代码
  • 丰县网站建设推广装潢公司
  • 网站需求wordpress自动生成tag
  • 营销网站建设的公司哪家好多用户自助建站系统
  • 网站设计配色怎么做河南建筑业城乡建设网站查询
  • 做企业信用贷的网站优化王
  • 天网站建设网站仿制可用于商业吗
  • 网站建设优化服务方案南京网站建设公司 雷
  • WordPress全站广告软件开发工作稳定吗
  • 网站建设一般多少钱一年在国外做h网站怎么样