设为首页 加入收藏

TOP

Linux下的线程类封装
2014-11-24 02:09:03 来源: 作者: 【 】 浏览:0
Tags:Linux 线程 封装

前些天弄了一个Windows下的线程类封装,用起来比较方便,现在移植到了Linux下,因为还不会事件机制,所以就用互斥来进行线程的管理,初级应用应该够了。代码如下,大家可以参考一下,如果对你有用,那是最好,如果不完善,还望多提意见。


互斥量头文件:blmutex.h


view plaincopy to clipboardprint
#ifndef __BL_MUTEX_HEAD_FILE__
#define __BL_MUTEX_HEAD_FILE__
#include
#include
#include

class BL_Mutex
{
public:
BL_Mutex()
: _isCreated( false )
{
pthread_mutex_init( &_mutex, NULL );
_isCreated = true;
}
~BL_Mutex()
{
if ( _isCreated )
{
pthread_mutex_destroy ( &_mutex );
}
}
public:
void lock()
{
pthread_mutex_lock( &_mutex );
}
void unlock()
{
pthread_mutex_unlock ( &_mutex );
};
void trylock()
{
pthread_mutex_trylock ( &_mutex );
}
private:
bool _isCreated;
pthread_mutex_t _mutex;
};
class BL_Lock
{
public:
BL_Lock( BL_Mutex *bl_mutex )
: _lpMutex ( bl_mutex )
{
if ( _lpMutex )
_lpMutex->lock();
}
~BL_Lock()
{
if ( _lpMutex )
{
_lpMutex->unlock();
}
}
private:
BL_Mutex *_lpMutex;
};
#endif // __BL_MUTEX_HEAD_FILE__
#ifndef __BL_MUTEX_HEAD_FILE__
#define __BL_MUTEX_HEAD_FILE__
#include
#include
#include


class BL_Mutex
{
public:
BL_Mutex()
: _isCreated( false )
{
pthread_mutex_init( &_mutex, NULL );
_isCreated = true;
}
~BL_Mutex()
{
if ( _isCreated )
{
pthread_mutex_destroy ( &_mutex );
}
}
public:
void lock()
{
pthread_mutex_lock( &_mutex );
}
void unlock()
{
pthread_mutex_unlock ( &_mutex );
};
void trylock()
{
pthread_mutex_trylock ( &_mutex );
}
private:
bool _isCreated;
pthread_mutex_t _mutex;
};
class BL_Lock
{
public:
BL_Lock( BL_Mutex *bl_mutex )
: _lpMutex ( bl_mutex )
{
if ( _lpMutex )
_lpMutex->lock();
}
~BL_Lock()
{
if ( _lpMutex )
{
_lpMutex->unlock();
}
}
private:
BL_Mutex *_lpMutex;
};
#endif // __BL_MUTEX_HEAD_FILE__


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇基于Linux的USB从设备驱动研究 下一篇Linux DIRECT IO遭遇EINVAL的解法

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: