【发布时间】:2020-04-25 22:12:00
【问题描述】:
程序的运行时堆栈存储为虚拟内存的一部分,并从系统 Y 上的地址 X 开始(不考虑随机化)。当一个新线程被创建时,拥有自己独立的栈,它存储在哪里? (线程共享它们的虚拟内存)
【问题讨论】:
-
请编辑您的问题。它没有指定上下文,因此无法提供答案。例如,如果是这种情况,请添加“64 位 Microsoft Windows 进程”。
-
作为一个通用答案,新线程的堆栈可能会放置在进程地址空间中的几乎任何位置,这将由提供线程实现的库/软件决定(很可能与操作系统合作)。对于 Linux/pthreads,以下问题的答案包含更多详细信息:stackoverflow.com/questions/44858528。
标签: multithreading language-agnostic virtual-memory callstack memory-layout