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 write void read_fun() { std::shared_lock<std::shared_mutex> lock(write); // do read }
本博客注有“转”字样的为转载文章,其余为本人原创文章,转载请务必注明出处或保存此段。c++/lua/windows逆向交流群:69148232