是否可以重用堆栈中的值?

问题描述 投票:1回答:1

我希望这不是一个愚蠢的问题。我目前正在尝试了解线程以及它们的内存分配。在那里,我遇到了堆栈的概念。而且我相信已经了解了FIFO(相对简单)的概念,但是我不明白的是以下内容:

如果我有一个线程并执行它,则该方法使用堆栈来存储所有数据,但是如果堆栈是FIFO,则只能使用每个数据一次,因为一旦访问该数据便会弹出从堆栈。但是如果我有一种使用f.e.一个变量两次还是三次? (已编译)进程是否事先知道,由于必须使用3次数据,所以必须将数据放入堆栈中3次,或者这是如何工作的?

非常感谢!

multithreading stack fifo
1个回答
0
投票

通常,对函数或方法的每次调用都会获得其自己的堆栈框架。推送和弹出的是堆栈帧,而不是单个变量。因此,方法调用可以多次访问相同的变量,因为该方法调用使用相同的堆栈框架来引用它。

© www.soinside.com 2019 - 2024. All rights reserved.