汕头市做网站优化搜索关键词站长工具
std::mutex
C++11。最简单的互斥锁,1个线程内,不支持重复加锁。
std::lock_guard<std::mutex> lock(mutex)
std::recursive_mutex
C++11。可以替代st::mutex,但性能会下降。1个线程内,支持重复加锁(可重入)。
std::lock_guard<std::recursive_mutex> lock(mutex);
std::shared_mutex
C++17,不支持Windows XP系统。常用来做读写锁。
// 读
std::shared_lock<std::shared_mutex> lock(mutex);// 写
std::unique_lock<std::shared_mutex> lock(mutex);