一個threadpool的使用

一個線程池(ThreadPool)的使用


2009-06-10 11:22:56
 標籤:線程池   [推送到技術圈]

代碼來源:codeproject

1) 步驟一
#include "ThreadPool.h"
2)步驟二
從IRunObject派生自己的處理類
class CMyRunObject : public IRunObject
{
public:
 CMyRunObject();
 ~CMyRunObject();
 void Run();
 void Initialize()
 {
  // 初始化
 }
 
 bool AutoDelete()
 {
  // 是否自動刪除(線程運行完後,自動刪除IRunObject對象
  return true;
 }
 
 void DeleteInstance()
 {
  // 刪除實例,當作析構來用
  delete this;
 }
};

派生類中必須實現的函數:Run, Initialize, AutoDelete, DeleteInstance
3)步驟三
啓動線程池
CThreadPool m_Pool;
CMyRunObject *pRunObject = new CMyRunObject();
m_Pool.Run(pDeliver);
關閉線程池
m_pool.Destroy();
重啓線程池
m_pool.Destroy();
m_pool.SetPoolSize(10);  // 池的初始線程數量
m_pool.SetPoolMaxSize(100); // 池的最大線程數
m_pool.Create();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章