一个简单的读写锁(Windows 平台)

看过网上一些读写锁的实现,感觉实现都比较麻烦,我想想这个应该不是特别麻烦的事,主要就是考虑如何实现写加锁,于是就动手写了一个,没有使用事件等内核级的对象,只使用了临界区和InterLock函数。目的很简单,就是读操作尽快释放对读锁的占用。下面是代码实现:

#include 
class CReadWriteLock
{
public:
    CReadWriteLock(void);
    ~CReadWriteLock(void);
    bool ReadLock();
    bool ReadUnlock();
    bool WriteLock();
    bool WriteUnlock();
private:
    LONG mdwReaders;
    CRITICAL_SECTION mEnterLock;
};

/***************************************************
CReadWriteLock::CReadWriteLock(void)
构造函数
*****************************************************/
inline CReadWriteLock::CReadWriteLock(void)
{
    InitializeCriticalSection(&mEnterLock);
    mdwReaders = 0;
    #ifdef DEBUG
        std::cout<<"Create ReadWriteLock"<0)
    {
    #ifdef DEBUG
        std::cout<<"Writer lock test Reader number."<


 

你可能感兴趣的:(多线程,多线程,读写锁)