已知尝试基于堆栈的JVM内存管理

时间:2015-01-12 10:39:50

标签: java garbage-collection jvm stack

我正在阅读不同的JVM实现,并且我想知道为什么stack-based memory management不是更普遍(不要与escape analysis混淆)。您是否熟悉使用基于堆栈的内存管理编写JVM的尝试?

1 个答案:

答案 0 :(得分:1)

这不太实际。

只要有多线程,就需要在线程之间共享对象的引用。这意味着线程需要保存对其他线程堆栈的引用,并且一旦最初创建对象的方法返回,这些线程就会失效。

堆实际上是进程中所有线程都可以看到的内存共享区域,因此任何需要被多个线程看到的对象都会自然存在。

另一种说法是堆栈是一个私有的线程,而堆在它们之间共享。