首页 > 代码库 > c++ 多个线程读一个线程写同步

c++ 多个线程读一个线程写同步

这种情况一般多个线程读是不需要加锁的。就在写的时候需要加锁。

那么要做的就是让不写的时候,读不受同步限制。让多线程自由的读。

这个时候就要用读写锁

boost已经有读写锁,而c++ 14才有读写锁。

std::shared_mutex write; //use boost‘s or c++14 // One write, no reads.void write_fun(){    std::lock_guard<std::shared_mutex> lock(write);    // DO WRITE}// Multiple reads, no writevoid read_fun(){    std::shared_lock<std::shared_mutex> lock(write);    // do read}

 

c++ 多个线程读一个线程写同步