使用互斥锁进行多次读取和一次写入操作

时间:2018-11-01 07:27:45

标签: c++ multithreading synchronization mutex

我有两个功能

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个同时进行的读取操作。

0 个答案:

没有答案