其中m_Pool指向实际的线程池;m_NumOfThread是初始创建时候允许创建的并发的线程个数。另外Run和TerminateAll方法也非常简单,只是简单的调用CThreadPool的一些相关方法而已。其具体的实现如下:
- CThreadManage::CThreadManage() {
- m_NumOfThread = 10; m_Pool = new CThreadPool(m_NumOfThread);
- }
- CThreadManage::CThreadManage(int num) {
- m_NumOfThread = num; m_Pool = new CThreadPool(m_NumOfThread);
- }
- CThreadManage::~CThreadManage() {
- if(NULL != m_Pool) delete m_Pool;
- }
- void CThreadManage::SetParallelNum(int num) {
- m_NumOfThread = num; }
- void CThreadManage::Run(CJob* job,void* jobdata)
- { m_Pool->Run(job,jobdata);
- }
- void CThreadManage::TerminateAll(void) {
- m_Pool->TerminateAll(); }
CThread
CThread 类实现了对Linux中线程操作的封装,它是所有线程的基类,也是一个抽象类,提供了一个抽象接口Run,所有的CThread都必须实现该Run方法。CThread的定义如下所示:
- class CThread {
- private: int m_ErrCode;
- Semaphore m_ThreadSemaphore; //the inner semaphore, which is used to realize unsigned long m_ThreadID;










