c++ 标准是否保证使用 std::allocator 构造不同的元素是线程安全的?例如:

// main thread
std::allocator<T> alloc;
auto *p = alloc.allocate(2);

// thread1
alloc.construct(p);

// thread2
alloc.construct(p + 1)

另外,对于不同的元素, std::allocator::destroy 线程安全吗?

谢谢!

最佳答案


所以是的,在 construct 上并发调用 destroystd::allocator<T> 保证是线程安全的。

关于c++ - 在构造不同的元素时, 'std::allocator<T>::construct' 是线程安全的吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36540378/

10-11 14:46