2015-06-30 2 views

ответ

8

Каждый поток имеет свой стек вызовов, «стек вызовов» и «поток стека» - это одно и то же. Вызов «стека потоков» просто подчеркивает, что стек вызовов специфичен для потока.

Bill Venners calls this the Java stack:

Когда новый поток запускается виртуальная машина Java создает новый стек Java для потока. Как упоминалось ранее, Java-стек сохраняет состояние потока в дискретных кадрах. Виртуальная машина Java выполняет только две операции непосредственно на Java Stacks: она выталкивает и создает кадры.

Метод, который в настоящее время выполняется потоком, является текущим методом потока. Кадр стека для текущего метода - это текущий кадр. Класс, в котором определяется текущий метод, называется текущим классом, а текущий пул текущего класса является текущим постоянным пулом. По мере выполнения метода виртуальная машина Java отслеживает текущий класс и текущий пул констант. Когда виртуальная машина встречает инструкции, которые работают с данными, хранящимися в фрейме стека, она выполняет эти операции с текущим фреймом.

Когда поток вызывает метод Java, виртуальная машина создает и толкает новый кадр в стек Java потока. Этот новый кадр становится текущим фреймом. По мере выполнения метода он использует фрейм для хранения параметров, локальных переменных, промежуточных вычислений и других данных.

3

A call stack является stack data structure, в котором хранится информация об активных подпрограммах компьютерной программы.

То, что вы называете thread stack, является тем, что я предполагаю, это частный стек потока.

Эти две вещи по существу одинаковы. Они равны stack data structures.

стека потока используется для хранения местоположение вызовов функций, с тем чтобы обеспечить возвращение заявления вернуться в правильное место

Поскольку обычно только один важный стек вызовов, это то, что люди см. стек.

Here - информация о стеке.

Here - информация о распределении памяти на основе стека.

0

Каждый поток имеет свой собственный стек, каждый вызов метода использует новую область этого стека. Это означает, что когда метод вызывает себя (рекурсия), он будет иметь новый набор локальных переменных.

Смежные вопросы