use*_*364 5 c memory multithreading stack-memory
我们知道每个线程都有自己的堆栈。这些堆栈分配在哪里?我读了一些文档,似乎堆栈是在创建线程时从堆中分配的。这有道理吗?提前致谢!
Rus*_*ove 5
C 没有指定内存从哪里来。它依赖于操作系统和 C 运行时库。线程堆栈内存由操作系统作为创建线程的系统调用的一部分进行分配,或者创建线程的进程必须从应用程序堆提供内存以用作线程堆栈。
查看 Linux克隆系统调用的文档,Linux 似乎采用了后者;线程堆栈内存来自应用程序堆。
你为什么要问?
归档时间:
11 年,7 月 前
查看次数:
3699 次
最近记录:
4 年,4 月 前