您的位置:首页 > 运维架构 > Linux

Linux学习之互斥量的封装一:封装创建(pthread_mutex_init)和销毁(pthread_mutex_destroy)

2011-10-21 18:00 836 查看
本节的源程序基于"Linux学习之线程封装四:基于接口的封装"一节。

增加了封装的互斥量类"CLMutex"(互斥量的创建封装进构造函数,销毁封装进析构函数,还结合CLLog类增加了错误处理)。

头文件:

View Code

#include <iostream>
#include "CLThread.h"
#include "CLExecutiveFunctionProvider.h"
#include "CLMutex.h"

using namespace std;

struct SPara
{
int Flag;
CLMutex mutex;
};

class CLMyFunction : public CLExecutiveFunctionProvider
{
public:
CLMyFunction()
{
}

virtual ~CLMyFunction()
{
}

virtual CLStatus RunExecutiveFunction(void *pContext)
{
SPara *p = (SPara*)pContext;

p->mutex.Lock();

p->Flag++;

p->mutex.Unlock();

return CLStatus(0, 0);
}
};

int main()
{
CLExecutiveFunctionProvider *myfunction = new CLMyFunction();
CLExecutive *pThread = new CLThread(myfunction);

SPara *p = new SPara;
p->Flag = 3;

pThread->Run((void *)p);

p->mutex.Lock();

p->Flag++;
cout << p->Flag << endl;

p->mutex.Unlock();

pThread->WaitForDeath();

delete p;

delete pThread;
delete myfunction;

return 0;
}


简化了一定的操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: