首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >线程堆和堆栈

线程堆和堆栈
EN

Stack Overflow用户
提问于 2010-03-16 00:14:33
回答 4查看 752关注 0票数 7

在产生新线程的情况下如何分配内存,即内存堆、内存栈和线程之间是如何关联的?我知道这是基本的(.net框架概念),但不知何故,我不太了解这个概念。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-03-16 00:19:25

由于.Net线程的实现方式,这个问题真的很难回答。托管线程和相应的本机线程之间不一定有一对一的实现。CLR可以自由地使用多个本机线程来实现单个托管线程。因此,分配新的托管线程并不一定会导致派生本机线程。它可以简单地假设一个现有的。

你能告诉我们为什么这会让你担心吗?也许这会让我们得到一个更好的答案。

票数 2
EN

Stack Overflow用户

发布于 2010-03-16 00:17:49

堆栈属于线程上下文。堆属于进程,因此它在线程之间共享。

票数 1
EN

Stack Overflow用户

发布于 2010-03-16 00:19:16

它比.net更深层次的基础。线程是操作系统原生对象。所谓的托管线程只是本机线程的包装器。

回到你的问题上来。内存堆是跨同一进程的线程共享的,因为它们位于单个虚拟内存空间中。堆栈是独立的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2448631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档