Java Memory Multithread
2016-04-29 09:55:51 1 举报
登录查看完整内容
Java内存多线程是指在Java程序中,多个线程共享同一块内存空间进行数据交换和处理的过程。在多线程环境下,每个线程都有自己的栈空间,用于存储局部变量和方法调用等信息。但是,所有线程共享堆空间,用于存储对象实例等数据。因此,在多线程编程中,需要注意线程安全问题,避免出现数据竞争和死锁等问题。为了解决这些问题,Java提供了多种同步机制,如synchronized关键字、Lock接口等,以及内存模型和垃圾回收机制等技术手段,来保证多线程环境下的内存安全和稳定性。
作者其他创作
大纲/内容
高速缓存
主内存(与下面 Scope:Global 对应)
Name:Native Method StacksComment:Native方法栈,供Native方法使用。Scope:Per ThreadStart:Thread CreatedEnd:Thread Exit
Name:Run-Time Constant PoolComment:运行时常量池,是一个类或者接口中的常量池表(constant_pool table)在运行时的表现。包含许多类型的常量,比如:编译时期的数字字面量、必须在运行时解析的方法和字段的引用。分配在方法区(Method Area)。Scope:GlobalStart:类或者接口被JVM创建的时候(类被ClassLoader加载的时候)End:类被ClassLoader卸载的时候
Name:JVM StacksComment:JVM虚拟机栈,存放每一个方法调用的栈帧。存放局部变量和部分结果,方法调用和返回,可能分配在堆上,不要求连续。大小可以是固定大小,也可以动态扩展。Scope:Per ThreadStart:Thread CreatedEnd:Thread Exit
1、lock(if sync)
8、unlock(if sync)
Name:HeapComment:存储所有对象的实例和数组,GC主要活动区域。大小可以是固定大小,也可以动态扩展。Scope:GlobalStart:JVM Start UpEnd:JVM Exit
线程工作内存(与下面 Scope:Per Thread 对应)
(2、read)
Name:Method AreaComment:方法区,存放每一个类的结构,比如运行时常量池(run-time constant pool),字段(Field)和方法(Method)数据,方法(Method)和构造器(Constructor)的代码。包括初始化类和接口的特殊方法()。可以放在堆上,也可以不放在堆上,看具体实现,GC不常活动的区域。大小可以是固定大小,也可以动态扩展。Scope:GlobalStart:JVM Start UpEnd:JVM Exit
执行单元
Runtime Data Areas
CPU
(7、write)
Name:PC RegisterComment:程序计数器,存放当前线程执行的指令地址。Scope:Per ThreadStart:Thread CreatedEnd:Thread Exit
(5、assign)
(4、use)
(6、store)
(3、load)
0 条评论
回复 删除
下一页