📄 thread.cpp
字号:
/************************************************************** * Thread.cpp : implementation file * Copyright 2004-2005 TianMuLingHang * All rights reserved. * Author: Zeng Wenchuan * Date: Jan 9, 2005 * Modify: * Date:
* Email: zeng_aven@163.com
* Site: http://zeng_aven.go.nease.net/ *************************************************************/
#include "Thread.h"
void *ThreadRun(void *pvThread)
{
CThread *pThread = (CThread *)pvThread;
pThread->Run();
pthread_exit(0);
}
CThread::CThread()
{
pthread_cond_init(&m_cond, NULL);
pthread_mutex_init(&m_mutex, NULL);
}
CThread::~CThread()
{
Terminate();
pthread_cond_destroy(&m_cond);
pthread_mutex_destroy(&m_mutex);
}
bool CThread::Start()
{
ERROR_TRY
int nRet = pthread_create(&m_ThreadID, NULL, &ThreadRun, (void *)this);
if (0 != nRet) {
cout<< "create the thread error !!!" << endl;
return false;
}
m_State = Thread_Hup;
ERROR_UNKNOW_RETURN(CTHREAD, "Start", true)
}
bool CThread::Wakeup()
{
ERROR_TRY
if (pthread_cond_signal(&m_cond) == 0) {
m_State = Thread_Idle;
return true;
}
ERROR_UNKNOW_RETURN(CTHREAD, "Wakeup", false)
}
bool CThread::Terminate()
{
ERROR_TRY
if (pthread_cancel(m_ThreadID) == 0) { //
m_State = Thread_Exit;
return true;
}
ERROR_UNKNOW_RETURN(CTHREAD, "Terminate", false)
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -