栈这个词,在计算机科学领域里是一个很基础的概念。栈这个词的读音与扇音类似,读音为 zhàn 。字根是方块(土)和堆(垛)组合而来,表示堆叠的形态,比喻后进先出的存储结构。
栈是一种非常重要的数据结构,它的特点是具有后进先出的特性。栈主要由两个基本操作组成,一个是进栈,也就是压入数据;另一个是出栈,也就是弹出数据。在内存局部性理念下,进栈、出栈操作被广泛应用于编程语言中函数的调用与返回。
在操作系统内核中,内核使用的堆栈是每个内核线程的关键性的局部存储。每个线程都有它自己的堆栈,比如 Windows 操作系统给每个线程都分配一段从高地址到低地址的栈空间,用于保存当前线程的运行状态。