很简单就是在读的时候把写的锁锁住就好了

class readwrite_lock
{
public:
readwrite_lock()
: read_cnt(0)
{
} void readLock()
{
read_mtx.lock();
if (++read_cnt == 1)
write_mtx.lock(); read_mtx.unlock();
} void readUnlock()
{
read_mtx.lock();
if (--read_cnt == 0)
write_mtx.unlock(); read_mtx.unlock();
} void writeLock()
{
write_mtx.lock();
} void writeUnlock()
{
write_mtx.unlock();
} private:
mutex read_mtx;
mutex write_mtx;
int read_cnt; // 已加读锁个数
};

  

最新文章

  1. 关于Karaf Container 4.0.7
  2. [ASP.NET MVC 小牛之路]16 - Model 验证
  3. spring MVC学习笔记
  4. cocos2dx阴影层的实现
  5. tomcat启动,输出system.out.println()
  6. github简单使用教程(转)
  7. 查找指定表的字段not null约束,并生成删除Sql
  8. ASP.NET MVC轻教程 Step By Step 6——改进表单
  9. 本地搭建php环境
  10. Qt实现QQ好友下拉列表(用QListView实现,所以还得定义它的Model)
  11. 最短路径算法专题3----Bellman-Ford
  12. 如何在Android studio上运行从github上下载的RN项目
  13. 多维数据库 Oracle Essbase 和 IBM Cogons 底层原理
  14. Arm11-mini6410入坑
  15. 5.1Python函数(一)
  16. vue--http请求的封装--session
  17. sqlmap参数
  18. python概念-常用模块之究竟你是什么鬼
  19. Windows7下4种方式快速显示桌面
  20. c++的关联容器入门(map and set)

热门文章

  1. PIE SDK K-Means分类
  2. input type=checkbox的值后台怎么接受
  3. Exception 'ReflectionException' with message 'Class require does not exist'
  4. $bzoj1009-HNOI2008$ $GT$考试 字符串$dp$ 矩阵快速幂
  5. Python学习 day04
  6. 小程序 开发阶段请求网络报 不在以下 request 合法域名列表中
  7. Docker的学习笔记(开发的技术分享转发)
  8. 彻底消除wine中文乱码,QQ,kugoo等等....
  9. Java进程内缓存
  10. HDU 4268 multiset