Вы знаете, когда по какой-то причине вы переходите к отладчику, и IDE дает вам трассировку стека? И каждый метод (стековый фрейм) имеет свой собственный набор локальных переменных, которые вы можете проверить в отладчике?
Это «стек выполнения» вашей программы. Он показывает, как выглядит локальное состояние вашей программы в данный момент. Автор говорит, что каждый поток получает свой собственный отдельный стек выполнения, подобный этому. Он имеет свой собственный стек вызовов, и каждый из методов имеет свои локальные переменные.
Поскольку переменные хранятся как часть стека выполнения, а не в куче, они уникальны для выполняемого потока и не могут использоваться напрямую. Однако вы можете копировать их или передавать ссылки на объекты в другие потоки различными способами, так что это в основном академическое различие.