锁定资源(线程,C ++)

时间:2016-11-27 17:36:19

标签: c++ multithreading

我有两个线程(第一个用于读取,第二个用于写入)和一个共享资源(例如数组)。如何保护线程之间的资源? (块读,第二个线程正在写)(抱歉英文不好)

1 个答案:

答案 0 :(得分:4)

包含在std::mutex中的

std::lock_guard对于多线程新手来说是最简单的方法。

这样的事情:

class Resource {
public:
    T Read() { 
       std::lock_guard<std::mutex> lock(m_mutex);
       // read
    }  
    T Write() {
       std::lock_guard<std::mutex> lock(m_mutex);
       // write
    }
private:
    std::mutex m_mutex;
};