1.
这是 API_Mutex.hpp
#ifndef _API_MUTEX_HPP_
#define _API_MUTEX_HPP_
#include <pthread.h>
namespace API
{
//互斥量
class API_Mutex
{
public:
API_Mutex(); //构造函数
virtual ~API_Mutex(); //虚析构函数
private:
pthread_mutex_t m_Mutex; //互斥量
public:
void Lock(); //加锁
void UnLock(); //解锁
};
};
#endif
2. 这个是 API_Mutex.cpp
#include "API_Mutex.hpp"
#include <pthread.h>
//构造函数
API::API_Mutex::API_Mutex()
{
pthread_mutexattr_t MutexAttr;
memset(&MutexAttr, 0, sizeof(pthread_mutexattr_t));
pthread_mutexattr_init(&MutexAttr);
pthread_mutexattr_settype(&MutexAttr, PTHREAD_MUTEX_RECURSIVE_NP);
pthread_mutex_init(&m_Mutex, &MutexAttr);
}
//虚析构函数
API::API_Mutex::~API_Mutex()
{
pthread_mutex_destroy(&m_Mutex);
}
//加锁
void API::API_Mutex::Lock()
{
pthread_mutex_lock(&m_Mutex);
}
//解锁
void API::API_Mutex::UnLock()
{
pthread_mutex_unlock(&m_Mutex);
}
知识无价。
转载,请注明出处!!