打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
JVM 多线程
关于JVM、多线程的几个概念常识
2011-02-22 22:39

参考《深入JAVA虚拟机》、《JAVA多线程设计模式》等书。


方法区:存储当前JVM实例的类型信息和静态变量,这些信息是由该实例的所有线程共享的。

堆:存储JVM运行过程中创建的对象信息。

Java栈:每启动一个线程,JVM会为该线程分配一个JAVA栈,该栈保存当前线程的函数调用状态,包括其局部变量,传递进函数的参数等信息。

PC寄存器:通JAVA栈一样,也是在新线程创建的时候分配,总是指向下一个要执行的函数(非本地方法)。

本地方法栈:存储本地方法的调用状态、参数、变量以及与具体实现相关的下一个函数执行地址。


JVM实例:当JVM启动一个JAVA程序时,即创建一个JVM实例。每个实例都有独立的方法区和堆,并且他们是由当前实例里所有线程共享的。

 

 

总结来说,独享的内存区域可总结为:

JVM -- 本地方法栈

JVM实例 -- 方法区和堆

JVM线程 -- JAVA栈和PC寄存器

 

其他观点:

在《JAVA多线程设计模式》一书中,又把JVM实例的内存模型分为“主存储器(Mail Memory)”和“工作存储器(Working Memory)”

相对应于《深入JAVA虚拟机》中的概念,主存储器应该是指该JVM可用的所有内存空间,工作存储器是主存储器中的一个部分。

 

当线程需要访问某一个字段的时候,会首先将该字段从主存储器拷贝到工作存储器中(即将数据从方法区拷贝至JAVA栈)。

当线程需要保存某个数据的时候,也无法直接存储于主存储器,而是需要先保存至工作存储器中,等到JVM调度映射至主存储器。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
5.3.8 在Java中一种更好的单例实现方式
Java多线程编程环境中单例模式的实现
JAVA线程安全之内存模型
JVM与多线程 zz
Java开发之多线程的基本概念与如何避坑
java多线程并发访问解决方案
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服