⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 thread.cpp

📁 线程池+socket
💻 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 + -