Java内存模型
2017-03-26 12:30:49 0 举报
Java内存模型(JMM)是Java虚拟机规范中定义的一个概念模型,它描述了Java程序中各种变量(线程共享变量)的访问规则,以及在并发环境下如何保证数据的可见性、有序性和原子性。JMM将内存分为堆内存和栈内存两部分,堆内存用于存储对象实例,栈内存用于存储局部变量和方法调用。JMM规定所有变量都存储在主内存中,每个线程都有自己的工作内存,线程的工作内存中保存了被该线程使用到的变量的主内存副本拷贝。线程对变量的所有操作都必须在工作内存中进行,然后再将变量写回主内存。不同线程之间通过主内存来完成变量值的传递。
作者其他创作
大纲/内容
iConsumed
height
obj
obj which is finalizable
width
obj unreachable
name
线程私有数据区
age
id
instance
GC
WeakReference
Thread
obj was reclaimed
Method Area
共享数据区
pBuffer
Native Stack Frame
time
PC
obj created
Heap
obj was moved to FinalizeQueue
SoftReference
Constant Pool
Object
invoke obj finalize
unreachable objs
第一次GC时:1.没有声明finalize方法的不可达的对象会立刻被回收掉2.声明了finalize方法的不可达对象会放到FinalizeQueue中,之后又FinalizeDamonThread去回调finalize方法。经典的生产者/消费者模式。
color
Java Stack Frame
iSize
reclaimed
Phantomreference
move to finalize queue
0 条评论
下一页