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

时间:2019-02-25 08:20:13

标签: java multithreading memory-management jvm allocation

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

  

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

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

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:0)

我认为对本段进行改写可以使其更清晰易懂:

  

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