
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
java编程开发是大多数人转行软件编程开发行业的时候都会去学习的一种编程开发语言,今天合肥达内IT培训就给大家简单介绍一下,java编程内存模型概念与作用分析。
1、为什么要有Java内存模型
我们都知道一台基本的计算机有CPU和内存两个东西。
CPU负责计算,内存负责存储运行的程序和数据。
每次CPU计算时它会通过地址总线(AddressBus)向内存发送一个地址信号,指定要读取内存单元的地址。然后进行等待。
之后内存将数据通过数据总线返回给CPU,CPU会将数据加载到寄存器中处理。然后将结果存储回内存。
但随着计算机性能的发展,CPU的计算速度越来越快。这个等待的时间(即内存读写的速度)相比计算的时间变得越来越长,CPU就无法及时获得需要的数据,导致性能下降。
为了加快运行的速度,加了一个CPU高速缓存。每次需要读取数据的时候,先从内存读取到CPU缓存中,CPU再从CPU缓存中读取。由于CPU高速缓存则直接集成在CPU内部,与CPU之间的距离更近,因此访问速度大大加快了。
2、什么是JAVA内存模型
为了解决这个问题,Java封装了一套规范,这套规范就是Java内存模型。JMM定义了一组规则,以确保多线程环境下的内存可见性、有序性和数据同步等。
Java内存模型想屏蔽各种硬件和操作系统的访问差异,保证了Java程序在各种平台下对内存的访问都能得到一致效果。
实际上,这个本地内存并不真实存在,只是JMM的抽象概念,它既可能在缓存,也可能在寄存器等。
JMM通过控制主内存与每个线程的本地内存之间的交互,来提供内存可见性保证。
可见性指:指一个线程修改了共享变量的值后,其他线程是否能够立即看到这个修改的值。
3、JAVA内存模型解决了什么
Java内存模型封装了底层的实现后提供给开发人员一些关键字,比如volatile、Synchronized、final等,从而不需要关心底层的编译器优化、缓存一致性的问题。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加抖音太原达内IT培训学习了解。