对互斥锁的一种封装

来源:互联网 发布:淘宝二手货市场 编辑:程序博客网 时间:2024/05/22 07:52
#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
0 0
原创粉丝点击