c++ 17 后 标准库提供了std::shared_mutex, 其实就是读写锁。这里记一下读写锁的特性没有线程持有写锁时,所有线程都可以一起持有读锁有线程持有写锁时,所有的读锁和写锁都会阻塞有线程持有读锁时,写锁都会阻塞,读锁可以直接持有因为不同线程同时读数据是没有数据一致性的问题,只有在有线程写数据时才会有数一致性问题, 而互斥锁不管是读还是写,都会独占资源的所有权,当我们读多写少的时候,就可以使用读写锁来提升性能头文件#include <shared_mutex>成员函数读锁lock() 加写锁, 会阻塞直到加锁成功try_lock() 尝试加写锁,加锁成功或失败都会返回unlock() 解除写锁写锁lock_shared() 加读锁,会阻塞直到加锁成功try_lock_shared() 尝试加读锁,加锁成功或失败都会返回unlock_shared() 解除读锁与 std::lock_guard 、std::unique_lock 或 std::shared_lock 配合使用。1. 配合 std::lock_guard 、std::unique_lock, 在
lelele