linux对于互斥器的封装
来源:互联网 发布:centos更改ip地址 编辑:程序博客网 时间:2024/05/19 13:55
对于mutex封装的头文件Mutex.h为
#ifndef __MUTEX__#define __MUTEX__/*define two class MutexLock and MutexLockGuard*/#include<pthread.h>class MutexLock{private:pthread_mutex_t mutex_;public:MutexLock(){pthread_mutex_init(&mutex_,NULL);}~MutexLock(){pthread_mutex_destroy(&mutex_);}void lock(){pthread_mutex_lock(&mutex_);}void unlock(){pthread_mutex_unlock(&mutex_);}pthread_mutex_t*getPthreadMutex(){return &mutex_;}};class MutexLockGuard{private:MutexLock &mutex;public:explicit MutexLockGuard(MutexLock& mutex_):mutex(mutex_){mutex.lock();}~MutexLockGuard(){mutex.unlock();}};#endif
对于封装的类的测试为
#include<thread>#include"../Mutex.h"#include<iostream>#include<vector>using namespace std;int i=0;MutexLock mutex;void threadFunc(){MutexLockGuard t(mutex);for(int j=0;j<10;++j){++i;cout<<i<<endl;}}int main(){vector<thread> v;for(int j=0;j<10;++j){v.push_back(thread(threadFunc));}//thread t1(threadFunc);//thread t2(threadFunc);for(int j=0;j<10;++j){v[j].join();}//t1.join();//t2.join();return 0;}
0 0
- linux对于互斥器的封装
- 对于ASIHTTPRequest的封装
- 对于分页的封装类
- 转:对于封装的理解
- 对于Socket的简易封装
- 对于继承封装的理解
- ios 对于常用的NSUserDefults的封装
- C++对于托管代码的封装
- 自己对于DAO层的封装
- 对于RIL功能的一个封装
- iOS开发中对于NSURLRequest的封装
- MFC对于win32编程的封装细节
- 对于Picasso的封装和优化方案
- 对于httpclient上传文件的封装
- iOS开发中对于NSURLRequest的封装
- Android对于AsyncTask任务的封装
- 对于C++锁的封装及使用
- 对于java里面的封装思想,如何来封装
- leetCode练习(130)
- LeetCode 107. Binary Tree Level Order Traversal II
- OkHttp封装类
- typedef思考
- 神经网络的机器学习(Neural Networks for Machine Learning)(7)
- linux对于互斥器的封装
- new 接口{内部实现方法} 转为 匿名内部类
- OkHttp封装类
- 登录用户的edittext高级点的样式
- Linux启动打印信息
- 如何用python计算三角形的斜边?-学习笔记3-函数
- 工具类 2.0 Tools Gson 封装
- PMP笔记:挣值管理
- JavaScript中模拟java的map键值统计一段英文中各个单词出现的次数