我有两个功能
std::mutex read_write_mutex;
void Read()
{
std::lock_guard<std::mutex> guard(read_write_mutex);
...
}
void Write()
{
std::lock_guard<std::mutex> guard(read_write_mutex);
...
}
它将在多线程环境中由不同的线程调用。我必须锁定Read()和Write()方法,但是当只有Read()操作时,我不必锁定Read()。但是,如果有人使用Write()方法,则必须锁定Read()方法。基本上,我必须一次执行一次读/写操作,但必须进行多次读操作而不锁定。那可能吗?现在,我保留了一个互斥锁并锁定了这两个功能,但是问题是它阻止了2个同时进行的读取操作。