Linux下的线程类封装
Linux下的线程类封装
前些天弄了一个Windows下的线程类封装,用起来比较方便,现在移植到了Linux下,因为还不会事件机制,所以就用互斥来进行线程的管理,初级应用应该够了。代码如下,大家可以参考一下,如果对你有用,那是最好,如果不完善,还望多提意见。
互斥量头文件:blmutex.h
view plaincopy to clipboardprint?
#ifndef __BL_MUTEX_HEAD_FILE__
#define __BL_MUTEX_HEAD_FILE__
#include <stdlib.h>
#include <pthread.h>
#include <iostream>
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 <stdlib.h>
#include <pthread.h>
#include <iostream>
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__
|
评论暂时关闭