【发布时间】:2013-06-11 16:05:08
【问题描述】:
我在 C# 中有一个多线程进程,每个线程都经常尝试从堆中分配内存。这需要多个堆的锁,因此降低了线程的优势。
是否存在类似于线程的本地堆的东西,以便同时尝试从不同线程分配内存不会锁定其中一个?
【问题讨论】:
-
您确定争用是由于堆分配造成的吗?顺便提个有趣的问题...
-
这是最有可能的变种..
-
如果你产生了很多线程,这可能是其本身的原因,与他们所做的无关。在任何给定时间运行多少线程?
-
即使线程数是5-10也会出现这个问题
-
我不确定它是否在单个堆中的线程之间释放了锁。但是,垃圾收集器具有
Server模式,其中每个处理器都有单独的堆。
标签: c# multithreading heap-memory