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

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

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

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


慕容3067478
浏览 77回答 2
2回答

暮色呼如

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

万千封印

我认为改写这一段会使它更清晰,更容易理解:Java 虚拟机中运行的每个线程都为其调用堆栈分配一些内存。调用堆栈包含有关线程调用了哪些方法以到达当前执行点的信息。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java