linux和window下线程同步类
来源:互联网 发布:淘宝店最高等级是什么 编辑:程序博客网 时间:2024/04/30 10:57
定义部分:
// CThCriticalSectionObj
class CThCriticalSectionObj
{
public:
CThCriticalSectionObj();
~CThCriticalSectionObj();
void Acquire();
void Release();
private:
CThCriticalSectionObj(const CThCriticalSectionObj &);
CThCriticalSectionObj & operator = (const CThCriticalSectionObj &);
private:
#ifdef WIN32
CRITICAL_SECTION m_obj;
#else
pthread_mutex_t m_obj;
#endif
};
实现部分:
//////////////////////////////////////////////////////////////////////////
// CThCriticalSectionObj
CThCriticalSectionObj::CThCriticalSectionObj()
{
#ifdef WIN32
::InitializeCriticalSection(&m_obj);
#else
pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr);
pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_PRIVATE);
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
pthread_mutex_init(&m_obj, &attr);
pthread_mutexattr_destroy(&attr);
#endif
}
CThCriticalSectionObj::~CThCriticalSectionObj()
{
#ifdef WIN32
::DeleteCriticalSection(&m_obj);
#else
pthread_mutex_destroy(&m_obj);
#endif
}
void CThCriticalSectionObj::Acquire()
{
#ifdef WIN32
::EnterCriticalSection(&m_obj);
#else
pthread_mutex_lock(&m_obj);
#endif
}
void CThCriticalSectionObj::Release()
{
#ifdef WIN32
::LeaveCriticalSection(&m_obj);
#else
pthread_mutex_unlock(&m_obj);
#endif
}
- linux和window下线程同步类
- Linux 下线程同步
- linux下线程同步
- linux下线程同步
- linux下线程同步
- Linux下线程同步
- Linux和window时钟同步
- window下线程同步之(Event Objects(事件))的具体使用和说明
- Linux下线程的同步
- linux下线程的同步
- linux下线程的同步
- Linux下线程同步机制
- Linux下线程同步机制
- 《linux下线程的创建,同步和退出》
- linux下线程的同步和互斥
- Linux下线程同步问题中的互斥锁和条件变量
- window 线程同步机制
- window下线程同步之(Mutex(互斥器) )
- linux下查看和添加PATH环境变量
- 黑马程序员-面向对象的三大特性1-封装-set,get方法,弱语法
- fd_set 类型用法
- UIView的几个问题
- 从零开始写PHP(二)
- linux和window下线程同步类
- Javascript图片无缝滚动_妙味课堂
- 行程长度压缩算法
- js中使用正则表达式
- [Linux] shell read 命令参数 -p用法
- s:checkboxlist s:checkbox 初始值设置
- 【Java TCP/IP Socket】UDP Socket
- TextView键盘输入 弹出指定高度 点击return收回虚拟键盘
- SSL证书SOCKET登陆JAVA