我正在阅读有关Internal Java Memory Model的文章。 我想问一点:
Java虚拟机中运行的每个线程都有其自己的线程堆栈。线程堆栈包含有关线程调用了哪些方法以达到当前执行点的信息。
为什么每个线程都需要保存有关已执行哪些方法的信息(!)?如果它与上下文切换有关,那么(如果我没记错的话)线程必须保存有关当前正在执行的方法的信息。 保存已执行的方法的信息的实际需求是什么?
答案 0 :(得分:6)
这是指当前活动的方法。请注意,一个线程可以同时处于活动状态(A调用B调用C,...)。堆栈不包含有关已经完成的方法的信息。
答案 1 :(得分:0)
我认为对本段进行改写可以使其更清晰易懂:
在Java虚拟机中运行的每个线程为其调用堆栈分配一些内存。调用堆栈包含有关线程调用了哪些方法以达到当前执行点的信息。