gpt4 book ai didi

C++ 创建原子函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:11:03 30 4
gpt4 key购买 nike

void foo ( Bar* bar , void(Bar::*qux)(void) )
{
if ( bar )
{
bar->qux();
}
}

问题是:

  1. bar 可以被另一个线程检查后删除。

  2. 我无法将互斥成员添加到 Bar 以锁定它。

因此我想知道,如果我可以告诉处理器以原子方式运行这个函数,我该怎么做呢?我在 Google 上花了很多时间,但没有找到可以理解的手册...

附言Debian、gcc、Boost NOT 允许,C++11 IS 允许。

最佳答案

您可能希望使用具有共享所有权语义的智能指针(例如 shared_ptrintrusive_ptr)来确保只要您引用该对象,该对象就会保持事件状态。

关于C++ 创建原子函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12407984/

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