Java应用程序为所有线程启动一个堆。每个线程都有自己的堆栈。Java(JVM)如何为每个线程分配堆栈
当Java应用程序启动时,我们使用JVM选项-Xms
和-Xmx
来控制堆的大小,并使用-Xss
来控制堆栈大小。
我的理解是,被创建的堆成为JVM的“托管”内存,并且所有正在创建的对象都被放置在那里。
但是,堆栈创建如何工作? Java是否在创建每个线程时创建一个堆栈?如果是这样,堆栈在内存中的位置?它当然不在“被管理”的堆中。
JVM是从本地内存创建堆栈还是预先为堆栈预分配一部分管理内存区域?如果是这样,JVM如何知道如何创建线程?
您可能会发现[此答案](http://stackoverflow.com/a/25318740/2032064)interresting – Mifeet