术语之间是否存在语义差异call stack
and thread stack
,在Java多线程中?
每个线程都有自己的调用堆栈,“调用堆栈”和“线程堆栈”是同一个东西。称其为“线程堆栈”只是强调调用堆栈是特定于线程的。
Bill Venners 将其称为 Java 堆栈 https://www.artima.com/insidejvm/ed2/jvm8.html:
当一个新的线程启动时,Java虚拟机会为该线程创建一个新的Java堆栈。如前所述,Java 堆栈将线程的状态存储在离散帧中。 Java 虚拟机仅直接在 Java 堆栈上执行两个操作:推送和弹出帧。
线程当前正在执行的方法是该线程的当前方法。当前方法的堆栈帧是当前帧。定义当前方法的类称为当前类,当前类的常量池就是当前常量池。当执行方法时,Java 虚拟机会跟踪当前类和当前常量池。当虚拟机遇到对堆栈帧中存储的数据进行操作的指令时,它会在当前帧上执行这些操作。
当线程调用 Java 方法时,虚拟机会创建一个新帧并将其推送到线程的 Java 堆栈上。然后这个新帧将成为当前帧。当方法执行时,它使用帧来存储参数、局部变量、中间计算和其他数据。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)