C ++从同一个线程

时间:2018-05-12 13:24:17

标签: multithreading c++11

我有后台下载线程,如果下载完成,则调用用户指定的回调。用户可以为不同的下载设置相同的回调。

在我的回调代码中,我有这个:

obj->lock();
obj->doSomething();
obj->unlock();

obj是Object的全局引用。

class Object {
    std::mutex lck;

    void lock() { lck.lock(); }

    void unlock() { lck.unlock(); }

    void doSomething() {}

}

如果从同一个线程调用,上面的代码是未定义的行为。我找到了recursive_mutex,但我不确定它是否是正确的解决方案。

0 个答案:

没有答案