gpt4 book ai didi

c++ - C++中类级new delete运算符的线程安全

转载 作者:搜寻专家 更新时间:2023-10-31 02:14:18 24 4
gpt4 key购买 nike

我已经在我的一个类中重新实现了新建/删除运算符。现在我正在使我的代码成为多线程的,并且想了解是否也需要使这些运算符成为线程安全的。我在某处读到 Visual Studio 中的默认新建/删除运算符是线程安全的。但它是否适用于我的类的自定义新建/删除运算符?

void* MyClass::operator new(std::size_t count)
{
void* memo = ::operator new(count);
printf("Allocated base\n");
return memo;
}

最佳答案

如果与多个执行线程一起使用,您自己的 new 运算符必须是线程安全的。

如果你自己的new操作符只是调用了其他线程安全的函数,并没有做任何引入执行并发冲突的事情,那么就没有什么可做的了,你的new 默认情况下,运算符是线程安全的。

因此,对于您的运营商,您需要分析每个函数调用及其代码的每一行,以确定是否存在必须明确解决的并发问题。这实际上与编写必须与多个执行线程一起正常工作的其他任何东西没有什么不同,所以 new 运算符在线程安全方面并没有真正引入任何特殊要求,只是因为它是new 运算符。

关于c++ - C++中类级new delete运算符的线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40106071/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com