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

网站开发的经济效益分析电脑培训班速成班

网站开发的经济效益分析,电脑培训班速成班,深圳网站建设工作,口碑营销的形式JMM概述 Java Meory Model java内存模型。在不同的硬件和不同的操作系统上,对内存的访问方式是不一样的。这就造成了同一套java代码运行在不同的操作系统上会出问题。JMM就屏蔽掉硬件和操作系统的差异,增加java代码的可移植性。这是一方面。 另一方面JM…

JMM概述

Java Meory Model java内存模型。在不同的硬件和不同的操作系统上,对内存的访问方式是不一样的。这就造成了同一套java代码运行在不同的操作系统上会出问题。JMM就屏蔽掉硬件和操作系统的差异,增加java代码的可移植性。这是一方面。
另一方面JMM定义的一系列规则能够保证线程并发的安全性。主要是保证线程的可见性,有序性,原子性。
具体来说它主要就是抽象了线程和主存之间的关系。(如下图)每个线程都有一个工作内存(cpu缓存),工作内存中存放着主存(内存)的副本,一般是共享变量,比如实例变量,静态变量但是不包括局部变量。线程读写数据是直接操作工作内存的。线程不能访问其他线程的工作内存。多个线程间通信是通过主存来完成的。
在这里插入图片描述

线程三大问题

原子性,可见性,有序性。(简记:客源有)
线程需要满足这三大特性,才能保证线程并发安全。而JMM就是为了实现这三大特性定义的一系列规则。

可见性问题

可见性指的是当一个线程修改了共享变量后,另一个线程能够立马得到修改的这个值。但是由于CPU缓存的存在,可见性往往会存在一些问题。
比如说在多线程下,每个线程将变量存放在CPU缓存中,一个线程修改了变量后,放在CPU缓存中。另一个线程无法立即得到最新的值。这就造成了共享变量的数据不一致的问题。

原子性问题

CPU在执行指令的过程中发生了线程切换,会导致一些变量数据不一致,这种问题就成为原子性问题。

有序性问题

CPU在执行指令的时候,为了充分利用内部的计算单元,处理器可能会对代码进行乱序执行。CPU在并发环境下,乱序执行可能会到导致结果错误。这种问题就叫做有序性问题。

JMM解决线程可见性,原子性,有序性问题

定义Java内存模型并非是一件容易的事情。不能单纯的禁用CPU缓存和编译优化,这样会严重影响程序性能。JMM抽象了线程和主存之间的关系,定义了程序中变量的访问规则来解决上述问题。
从抽象的角度来看,JMM定义了线程和主存之间的抽象关系:线程之间的共享变量存放在主内存中,每个线程都有一个私有的工作内存,本地内存中存储了主存中共享变量的副本,线程对变量的操作都是在工作内存中进行的。(这里的工作内存是一个抽象的概念。包含了CPU缓存,寄存器以及编译器优化。主内存则指的是物理硬件的主内存。)
在这里插入图片描述

可见性保证

可见性指的是当一个线程修改了共享变量的值之后,其他线程能够立马得到这个修改

volatile能够保证可见性和有序性,volatile修饰的变量在本地内存中修改后会立即同步到主存中去,供其他线程访问到。
锁也能保证可见性,锁在释放和申请的时候都会更新缓存,从主存中获取最新的值。

原子性保证

通过Lock和UnLock来保证。java中是synchronized关键字。synchronized关键字对应的底层jvm指令是monitorenter和moniterexit

    public void test01(){synchronized (this){int i = 1;}}

有序性保证

java中提供了volatile和synchronized两个关键字来保证线程之间的有序性。volatile本身就包含了指令重排的语义。而 synchronized 则是由一个变量在同一时刻只允许一个线程对其进行 lock 操作这条规则来保证有序性的

JMM核心概念-happens-before

如果一个操作happens-before另一个操作,那么第一个操作的执行结果对后续的操作是可见的。
两个操作存在happens-before关系,并不意味着一定要按照happens-before原则指定的顺序来执行。可以对指令进行重排序,只要保证结果正确性即可。

参考:
从线程三大特性深入理解JMM(Java 内存模型)
happens-before是什么?JMM最最核心的概念,看完你就懂了

http://www.mmbaike.com/news/101239.html

相关文章:

  • 开工作室做网站怎样找资源推广软件的渠道有哪些
  • 网页设计大作业模板seo网络推广软件
  • 如何创造一个小程序杭州网站优化搜索
  • 江门网站制作 华企立方百度指数
  • 化妆品 网站建设案例网站推广计划书范文
  • 做网站为什么一定要留住用户线上营销
  • 电商ui设计师的发展前景搜索引擎优化师
  • 英山县住房和城乡建设局网站百度推广和百度竞价有什么区别
  • 为网站做外链的文章培训学校加盟费用
  • 电影网站app怎么做的厦门关键词排名提升
  • 网站开发可以用gif吗seo搜索引擎优化ppt
  • javaweb网站开发流程软文网站
  • 做网站的服务器很卡怎么办首页图片点击率如何提高
  • 四博互联做的网站seo sem优化
  • 东莞建设质监网站网络推销
  • 网站团队介绍百度网站入口
  • 西安学校网站制作网络广告推广公司
  • 北京网站seo公司网页生成
  • 在哪个网站可以做图文合并seo北京
  • 知名的网站建设seo软文推广
  • 加盟型网站建设策划营销
  • 通辽网站开发招聘痘痘怎么去除效果好
  • 保险网站人力资源管理师
  • 海山网站建设搜云seo
  • 网上如何做网站软件定制开发平台
  • 网站建设预算和维护怎样推广自己的商城
  • 网站建设的收费标准外链下载
  • h5响应式集团网站推荐百度销售系统登录
  • 台州住房和城乡建设部网站seo团队管理系统
  • 企业网站的功能主要有今日新闻摘抄十条