C ++ 11中的动态内存分配是线程安全的吗?

时间:2015-03-01 10:02:30

标签: multithreading c++11 dynamic-memory-allocation

C ++ 11中动态内存的分配和释放是否是线程安全的?换句话说:线程可以像单线程代码一样自由使用newdelete吗?

1 个答案:

答案 0 :(得分:4)

是的,::operator new的动态分配和::operator delete的重新分配是线程安全的。但是,允许实现具有全局锁定(例如,由malloc调用的new),其将序列化分配。如果您的计划重新定义::operator new& ::operator delete它应该确保它们是线程安全的。

关于delete,您不应该删除相同的指针两次(例如,在两个不同的线程中)。

相关问题