基于linux的posix多线程读写锁的头文件ThreadReadWriteLock.h
#ifndef ThreadReadWriteLock.class
#define ThreadReadWriteLock.class
#include
class ThreadReadWriteLock
{
public:
ThreadReadWriteLock();
~ThreadReadWriteLock();
bool SetReadLock();
bool SetWriteLock();
void Unlock();
private:
pthread_rwlock_t rwlock;
};
#endif
ThreadReadWriteLock.cpp
#include "ThreadReadWriteLock.h"
ThreadReadWriteLock::ThreadReadWriteLock()
{
pthread_rwlock_init(&rwlock,NULL);
}
ThreadReadWriteLock::~ThreadReadWriteLock()
{
}
int ThreadReadWriteLock::SetReadLock()
{
int readReturn = pthread_rwlock_rdlock(&rwlock);
if(readReturn == 0)
return true;
else
return false;
}
int ThreadReadWriteLock::SetWriteLock()
{
int writeReturn = pthread_rwlock_wrlock(&rwlock);
if(writeReturn == 0)
return true;
else
return false;
}
void ThreadReadWriteLock::Unlock()
{
pthread_rwlock_unlock(&rwlock);
}
对于返回值,可根据实际情况适当修改.如有错误,请指正.