在SO上有关于线程是否拥有自己的堆栈的各种问题。然而,我不明白操作系统如何实现或者通常如何实现每个线程一个堆栈。在操作系统书籍中,程序的内存布局如下所示:
![Memory Layout](https://istack.dev59.com/95hiw.gif)
请注意,它可以被视为一块连续的内存块(虚拟内存)。我会想象虚拟内存空间的一部分被划分给线程的堆栈。这就引出了这个问题的第二部分:一个流行的技术面试问题涉及尝试使用一个数组来实现3个堆栈。这个问题直接相关于解决线程堆栈的实现吗?
我总结我的问题如下:
![Memory Layout](https://istack.dev59.com/95hiw.gif)
请注意,它可以被视为一块连续的内存块(虚拟内存)。我会想象虚拟内存空间的一部分被划分给线程的堆栈。这就引出了这个问题的第二部分:一个流行的技术面试问题涉及尝试使用一个数组来实现3个堆栈。这个问题直接相关于解决线程堆栈的实现吗?
我总结我的问题如下:
- 现代操作系统(例如Linux)如何划分不同线程的堆栈的内存空间?
- “使用1个数组实现3个堆栈”与上述问题直接相关还是答案?