关闭

结合 异常捕获体系的 线程基类封装 (三)

标签: classwindowslinuxnull
732人阅读 评论(0) 收藏 举报
分类:

//共享锁
#if defined(__WINDOWS__)
class MyLock
{
 CRITICAL_SECTION m_Lock ;
public :
 MyLock( ){ InitializeCriticalSection(&m_Lock); } ;
 ~MyLock( ){ DeleteCriticalSection(&m_Lock); } ;
 VOID Lock( ){ EnterCriticalSection(&m_Lock); } ;
 VOID Unlock( ){ LeaveCriticalSection(&m_Lock); } ;
};
#elif defined(__LINUX__)
class MyLock
{
 pthread_mutex_t  m_Mutex;
public :
 MyLock( ){ pthread_mutex_init( &m_Mutex , NULL );} ;
 ~MyLock( ){ pthread_mutex_destroy( &m_Mutex) ; } ;
 VOID Lock( ){ pthread_mutex_lock(&m_Mutex); } ;
 VOID Unlock( ){ pthread_mutex_unlock(&m_Mutex); } ;
};
#endif
//自动加锁解锁器
class AutoLock_T
{
public:
 AutoLock_T(MyLock& rLock)
 {
  m_pLock = &rLock;
  m_pLock->Lock();
 }
 ~AutoLock_T()
 {
  m_pLock->Unlock();
 }
protected:
private:
 AutoLock_T();
 MyLock* m_pLock;
};

 

 

 

 

 

 

 

 

 

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:317419次
    • 积分:4180
    • 等级:
    • 排名:第8746名
    • 原创:60篇
    • 转载:115篇
    • 译文:0篇
    • 评论:25条
    最新评论