Ai
1 Star 0 Fork 0

lsnmjp/code of cpp Linux 算法

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
Mutex.hpp 1.13 KB
一键复制 编辑 原始数据 按行查看 历史
lsnmjp 提交于 2025-06-19 13:13 +08:00 . echo_server_v1
#ifndef _MUTEX__HPP
#define _MUTEX__HPP
#include<pthread.h>
#include<iostream>
namespace LockMoudle
{
class Mutex
{
public:
Mutex(const Mutex& mutex)=delete;
const Mutex& operator= (Mutex& mutex)=delete;
Mutex()
{
int n = pthread_mutex_init(&_lock,nullptr);
if(n!=0)
{
std::cerr<<"init error"<<std::endl;
}
}
~Mutex()
{
int n = pthread_mutex_destroy(&_lock);
}
void lock()
{
pthread_mutex_lock(&_lock);
}
pthread_mutex_t* addr()
{
return &_lock;
}
void unlock()
{
pthread_mutex_unlock(&_lock);
}
private:
pthread_mutex_t _lock;
};
//以下仅仅是一种加锁的用法,别想太多
class MutexGuard
{
public:
MutexGuard(Mutex& mutex)
:_mutex(mutex)
{
// 创建对象时就自动上锁
_mutex.lock();
}
~MutexGuard()
{
// 销毁对象时就自动解锁
_mutex.unlock();
}
private:
Mutex& _mutex;
};
}
#endif
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/lsnmjp/code-of-cpp-linux-algorithm.git
git@gitee.com:lsnmjp/code-of-cpp-linux-algorithm.git
lsnmjp
code-of-cpp-linux-algorithm
code of cpp Linux 算法
master

搜索帮助