⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 threadpool.h

📁 通用 linux 线程池, 使用 C++ 编写, 具有良好的扩展性.
💻 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 + -