当前位置: 代码迷 >> 多核软件开发 >> 常见线程同步有关问题
  详细解决方案

常见线程同步有关问题

热度:6132   发布时间:2013-02-26 00:00:00.0
常见线程同步问题
有一资源(一片内存)需要同步访问,访问者有"读线程10个","写线程1个"
需要达到目的是:10个读线程都可以同时读取数据,但在写入时所有线程不能读取

不知如何同步才能实现最高效率

------解决方案--------------------------------------------------------
那么是否读的时候也不能写呢?否则也会出现不一致的问题。

如果楼主的结构适合用链表,并且读要远远大于写,可以考虑用RCU技术。

否则就用一个引用计数来统计读线程个数。用一个变量标记写线程。

写线程开始,将写标记置1,当写线程设置为1时,新的读线程不能进入。而当读引用计数降至0时,写线程才可以写,写完后写标记置0。
------解决方案--------------------------------------------------------
操作系统 读者写者问题
http://blog.csdn.net/lenic/archive/2009/10/15/4675142.aspx
  相关解决方案