基于pthread实现读写锁

读写锁可用于在多线程访问map等数据结构时使用

#include <pthread.h>
class ReadWriteLock
{
public:
    ReadWriteLock()
    {
        pthread_rwLock_init(&m_lock, NULL);
    }
    ~ReadWriteLock()
    {
        pthread_rwLock_destroy(&m_lock);
    }
    void ReaderLock()
    {
        pthread_rwLock_rdlock(&m_lock);
    }
    void ReaderUnLock()
    {
        pthread_rwLock_unlock(&m_lock);
    }
    void WriterLock()
    {
        pthread_rwLock_wrlock(&m_lock);
    }
    void WriterUnLock()
    {
        pthread_rwLock_unlock(&m_lock);
    }
private:
    //禁止对读写锁进行拷贝
    ReadWriteLock(const ReadWriteLock& src);
    ReadWriteLock& operator=(const ReadWriteLock& rhs);
private:
    pthread_rwlock_t m_lock;
};

 

posted @ 2019-05-20 16:47  zmlgo  阅读(628)  评论(0)    收藏  举报