c++ - operator new 是否在 THREAD 堆上分配?

标签 c++ multithreading heap-memory portability darwin

我的问题似乎是这样的:一个线程分配的堆数据(后来死了)似乎也死了。这样:

  1. 线程 X:开始
  2. 线程 Y:开始
  3. 线程 X:ptr = 新的一些字节
  4. 线程 X:死亡
  5. 线程 Y:尝试使用 ptr - 但崩溃了!

到目前为止,我只在 Darwin(Mac OS 10.5 和 10.6)上看到过这个问题,但没有尝试过 Windows 和 Linux (Ubuntu) 以外的其他平台,它按预期工作。我遇到这个问题已经有一段时间了,所以非常感谢任何相关知识或更多信息!

编辑:问题是由 unrelated crash bug 引起的.

最佳答案

Do threads have a distinct heap?
这个线程有一些关于这个主题的好信息

关于c++ - operator new 是否在 THREAD 堆上分配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2445899/

相关文章:

c++ - 批评我的非侵入式堆调试器

C++:删除结构?

c++ - 文字 `0` 是 int 和 const string& 重载的有效候选者会导致模棱两可的调用

c++ - 从符号尾数和指数构造 float

c++ - QtPlugins 实现多个接口(interface)并转换为通用接口(interface)

c# - 如何实现线程队列/等待?

c++ - 如何实现 websocket++ ping 处理程序?

multithreading - Haskell 有没有办法在 forkIO 之后使用 ThreadID 查询线程状态?

c++ - 检查一个线程是否完成发送另一个参数给它

安卓 : How can I know how much memory is allocated on VM for my app?