我有两个线程(第一个用于读取,第二个用于写入)和一个共享资源(例如数组)。如何保护线程之间的资源? (块读,第二个线程正在写)(抱歉英文不好)
答案 0 :(得分:4)
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;
};