一個線程池(ThreadPool)的使用
代碼來源: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();
本文出自 51CTO.COM技術博客 |