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

标签 c++ multithreading

我有两个线程(第一个用于读取,第二个用于写入)和一个共享资源(例如数组)。如何保护线程间的资源? (阻止读取,而第二个线程进行写入)(抱歉英语不好)

最佳答案

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;
};

关于c++ - 锁定资源(线程,C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40831845/

相关文章:

c++ - 关于C/C++中的字母f(浮点型)

c++ - boost::shared_mutex 多读/单写互斥

c# - 可以立即终止的任务等价物

objective-c - OSAtomicIncrement32 锁定什么?

c++ - 并行写入数组

java - 如何在 SWT 应用程序中停止自定义 Thead?

c++ - g++ 警告,使用了内联虚函数但未定义

c++ - 为什么 C++0x 中的 Lambda 函数返回类型必须是自动的?

c++ - Visual Studio 2010 C++ - 未解析的外部符号

c++ - std::get like(部分)模板特化