Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
线程堆栈的内部Java内存模型_Java_Multithreading_Memory Management_Jvm_Allocation - Fatal编程技术网

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

线程堆栈的内部Java内存模型,java,multithreading,memory-management,jvm,allocation,Java,Multithreading,Memory Management,Jvm,Allocation,我在读一篇关于他的文章。 我想问一点: Java虚拟机中运行的每个线程都有自己的线程堆栈。线程堆栈包含有关线程调用哪些方法以达到当前执行点的信息 为什么每个线程都需要保存有关已执行哪些方法的信息(!)?若它和上下文切换有关,那个么(若我并没有错的话)线程必须保存关于当前正在执行的方法的信息。 保存已执行方法信息的实际需要是什么?这是指当前活动的方法。请注意,一个线程中可能有多个方法同时处于活动状态(a调用B调用C,…)。堆栈不包含有关已完成的方法的信息。这是指当前活动的方法。请注意,一个线程中可

我在读一篇关于他的文章。 我想问一点:

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

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

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

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

我认为重新表述这一段可以使它更清晰、更容易理解:

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


我认为改写这一段可以使它更清楚、更容易理解:

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


“has call”与“has executed”不同“has call”与“has executed”不同