threadpool.h
来自「通用 linux 线程池, 使用 C++ 编写, 具有良好的扩展性.」· C头文件 代码 · 共 80 行
H
80 行
#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 + =
减小字号Ctrl + -
显示快捷键?