线程堆栈的内部Java内存模型

问题描述 投票:1回答:2

我正在读关于Internal Java Memory Model的文章。我想问一点:

在Java虚拟机中运行的每个线程都有自己的线程堆栈。线程堆栈包含有关线程调用哪些方法以达到当前执行点的信息。

为什么每个线程都需要保存有关已执行的方法的信息(!)?如果它与上下文切换有关,那么(如果我没有错)线程必须保存有关当前正在执行的方法的信息。保存已执行方法的信息的实际需要是什么?

java multithreading memory-management jvm allocation
2个回答
6
投票

这是指当前活跃的方法。请注意,线程中可以有多个方法同时处于活动状态(A调用B调用C,...)。堆栈不包含有关已完成的方法的信息。


0
投票

我认为改写这一段使得它更清晰,更容易理解:

在Java虚拟机中运行的每个线程为其调用堆栈分配一些内存。调用堆栈包含有关线程调用哪些方法以达到当前执行点的信息。

© www.soinside.com 2019 - 2024. All rights reserved.