【发布时间】:2011-01-10 14:53:27
【问题描述】:
在 C/C++ 中,我可以在一个线程中分配内存并在另一个线程中删除它。然而,每当从堆中请求内存时,堆分配器都需要遍历堆以找到适当大小的空闲区域。两个线程如何在不破坏堆的情况下有效地访问同一个堆? (这是通过锁定堆来完成的吗?)
【问题讨论】:
-
重新标记,因为这实际上与任何特定的编程语言无关。
-
不完全正确。仅在增加堆时才涉及操作系统(这涉及在新内存页面中进行分页)。由 malloc/new 的 C/C++ 实现来实际管理堆。
标签: memory operating-system heap-memory