#include<pthread>
typedef pthread_t Mutex_t;
// 主要用于定义互斥锁的定义,以及提供加锁解锁的接口
class STH_Mutex{
friend class STH_Mutex_Gruad;
public:
STH_Mutex()
{
pthread_mutex_init(&mutex_,NULL);
}
~STH_Mutex()
{
destroy();
}
private:
int lock()
{
return pthread_mutex_lock(&mutex_);
}
int unlock()
{
return pthread_mutex_unlock(&mutex_);
}
int destroy()
{
return pthread_mutex_destroy(&mutex_);
}
private:
Mutex_t mutex_;
}; // end class STH_Mutex
// 对象在创建时对指定的互斥锁进行加锁,析构时对互斥锁进行解锁
class STH_Mutex_Gruad{
public:
STH_Mutex_Gruad(STH_Mutex* ptr):mutex_lock_(ptr);
{
mutex_lock_->lock();
}
~STH_Mutex_Gruad()
{
mutex_lock_->unlock();
}
private:
STH_Mutex* mutex_lock_;
}; // end class STH_Mutex_Gruad