C++实现多线程读写锁
来源:互联网 发布:南风知我意无弹窗阅读 编辑:程序博客网 时间:2024/04/30 05:17
在Win32下用C++实现多线程读写锁
读写锁实际是一种特殊的自旋锁,它把对共享资源的访问者划分成读者和写者,读者只对共享资源进行读访问,写者则需要对共享资源进行写操作。这种锁相对于自旋锁而言,能提高并发性,因为在多处理器系统中,它允许同时有多个读者来访问共享资源,最大可能的读者数为实际的逻辑CPU数。写者是排他性的,一个读写锁同时只能有一个写者或多个读者(与CPU数相关),但不能同时既有读者又有写者。
现在Win32的API,用C++实现自己的读写锁。这组API包括:CreateMutex,CreateEvent,WaitForSingleObject,WaitForMultipleObjects,ResetEvent,ReleaseMutex,SetEvent,CloseHandle。以下代码在VS2005下,已经编译通过。
RWLockImpl.h
RWLockImpl.cpp 下边是测试代码欢迎转载,麻烦带上链接:http://blog.csdn.net/chexlong/article/details/7110060 谢谢合作!
在Linux平台上已经有现成的线程读写锁pthread_rwlock_t以及相关API,现将这些API封装成与Win32平台上相同的接口,以便于编写跨平台程序。这些API包括pthread_rwlock_init,pthread_rwlock_rdlock,pthread_rwlock_tryrdlock,pthread_rwlock_wrlock,pthread_rwlock_trywrlock,pthread_rwlock_unlock,pthread_rwlock_destroy,可在Linux在线手册上查阅它们的说明。下边的代码在VS2005中编辑,在Fedora 13虚拟机中编译,测试通过。
RWLockImpl.h
下边是测试代码
编译,运行
运行结果与在Win32下用C++实现多线程读写锁的相同。
欢迎转载,麻烦带上链接:http://blog.csdn.net/chexlong/article/details/7163233,谢谢合作!
- C++实现多线程读写锁
- C++实现多线程读写锁
- C++实现多线程读写锁
- 读写锁和普通实现实现多线程读写者
- C-多线程读写同步
- 多线程 : 读写锁实现缓存系统
- java多线程:9、读写锁实现Cache
- 【C/C++多线程编程之九】pthread读写锁
- 数据库读写锁的实现(C++)
- 在Win32下用C++实现多线程读写锁
- Win32 下用 C++ 实现多线程读写锁
- 在 Win32 下用 C++ 实现多线程读写锁
- 在Win32下用C++实现多线程读写锁
- 在 Win32 下用 C++ 实现多线程读写锁
- 多线程之使用读写锁ReentrantReadWriteLock实现缓存系统
- 单链表<br>java单链表的实现, 多线程 ,读写锁
- 在Win32下用C++实现多线程读写锁
- c#多线程读写锁
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (三) —— SharePreferences
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (四) —— ContentProvider
- Vim实战手册(10)Vimide——打造你自己的IDE(C)
- JTable 详解
- 【Django】admin使用
- C++实现多线程读写锁
- 数字验证码
- 2012移动互联网六大创业趋势
- FFT原理与实现
- 一位蜗牛程序员四年工作总结-2011
- C# 生成EAN13 BarCode
- 原码、反码和补码
- Measuring Project Performance: Earned Value Analysis
- Android高级进阶十二 在Android上使用3D 引擎(JPCT-AE)构建立方体