摘要: 转自princetengC++多线程——读写锁shared_lock/shared_mutex 何为读写锁 相比互斥锁,读写锁允许更高的并行性,互斥量要么锁住状态要么不加锁,而且一次只有一个线程可以加锁。读写锁可以有三种状态: 读模式加锁状态; 写模式加锁状态; 不加锁状态; 只有一个线程可以占有写 阅读全文
posted @ 2020-06-08 15:29 Chen沉尘 阅读(13908) 评论(0) 推荐(0) 编辑
摘要: 需要保护的初始化举例 如对单例模式的初始化。 1 #include <iostream> 2 #include <thread> 3 #include <mutex> 4 5 using namespace std; 6 7 //单例模式 8 class MySingleTon{ 9 public: 阅读全文
posted @ 2020-06-08 14:22 Chen沉尘 阅读(426) 评论(0) 推荐(0) 编辑
摘要: 保护共享数据的最基本的方式,是使用C++标准库提供的互斥量(头文件<mutex>)。当访问共享数据前,使用互斥量将相关数据锁住,再当访问结束后,再将数据解锁。线程库需要保证,当一个线程使用特定互斥量锁住共享数据时,其他的线程想要访问锁住的数据,都必须等到之前那个线程对数据进行解锁后,才能进行访问。这 阅读全文
posted @ 2020-06-08 12:54 Chen沉尘 阅读(926) 评论(0) 推荐(0) 编辑