Linux 下 Mutex 的简易包装

本文介绍了一个基于pthread的互斥量类API_Mutex的实现。该类提供了构造函数、析构函数、加锁及解锁等核心功能,并使用PTHREAD_MUTEX_RECURSIVE_NP属性初始化互斥量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);
}


知识无价。

转载,请注明出处!! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Teleger

你的支持是我前进的方向

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值