相关疑难解决方法(0)

C++ 创建原子函数

void foo ( Bar* bar , void(Bar::*qux)(void) )
{
    if ( bar )
    {
        bar->qux();
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是:

  1. bar可以在其他线程检查删除。

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

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

PS的Debian,GCC,增压NOT允许,C ++ 11 IS允许的。

c++ multithreading pointers mutex atomic

5
推荐指数
1
解决办法
9784
查看次数

标签 统计

atomic ×1

c++ ×1

multithreading ×1

mutex ×1

pointers ×1