📄 threadpool.h
字号:
#ifndef _THREAD_POOL_H_#define _THREAD_POOL_H_#include "basejob.h"#include "lock.h"#include <list>#include <semaphore.h>#include "shared_ptr.h"#include "thread.h"#include <iostream>using namespace std;namespace util{class ThreadPool{public: ThreadPool(unsigned int _size); ~ThreadPool(void); void stop(); // ............ void addJob(const shared_ptr<BaseJob> job); // ........ unsigned int idleThreadCount(void);private: class WorkThread : public Thread { public: WorkThread(const ThreadPool*); virtual void run(void); private: ThreadPool *m_pool; }; friend class WorkThread; void destroy(void); // ....... void joinWithAllThreads(void); // ........ void run(void); // ............... shared_ptr<BaseJob> getJob(void); // .......... bool jobEmpty(void);private: const unsigned int m_size; unsigned int m_idleCount; ThreadMutex m_idleMutex; bool m_bStoped; sem_t m_sem; //list<BaseJob *> m_jobList; list<shared_ptr<BaseJob> > m_jobList; ThreadMutex m_csJobList; list<shared_ptr<WorkThread> > m_threadList; ThreadMutex m_csThreadlist; private: ThreadPool(const ThreadPool&); ThreadPool& operator=(const ThreadPool&);};}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -