【发布时间】:2011-01-22 18:17:17
【问题描述】:
如果我在 C++ 中的一个线程(new 或 malloc)中分配内存,我可以在另一个线程中取消分配,还是必须在同一个线程中进行?理想情况下,我想首先避免这种情况,但我很想知道它是合法的、非法的还是依赖于实施的。
编辑:我目前使用的编译器包括 VS2003、VS2008 和 Embedded C++ 4.0,针对 XP、Vista、Windows 7 和各种风格的 Windows CE/PocketPC 和 Mobile。所以基本上所有微软,但跨越一系列深奥的平台。
【问题讨论】:
-
C++ 标准中根本没有提到线程。这都是特定于实现的。
-
如果你告诉使用你正在使用的 wwitch 编译器、操作系统等,你可能会得到一些更有帮助的答案
-
@Ian,添加了编译器和操作系统详细信息。
-
面对大数据项的高效线程间通信,除了线程安全容器中更复杂的线程间通信对象池之外,别无选择。
标签: c++ multithreading memory-management heap-memory