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

📄 threadpool.h

📁 BQYAHOO的Visual C++源代码
💻 H
字号:
#pragma once


#include <list>
#include <windows.h>
#include <string>
using namespace std;


/* Asynchronized Queue */
template <class T>
class AsynchQueue {
public:
	AsynchQueue();
	~AsynchQueue();

	void Enqueue(T* data);
	T* Dequeue();

private:
	std::list<T*> queue;
	HANDLE hMutex;
	HANDLE hEvent;

	AsynchQueue(const AsynchQueue<T>& q);
	AsynchQueue &operator=(const AsynchQueue<T>&);
};






/* Job that passed to the thread */
class Job {
public:
	virtual void Process() = 0;
	virtual ~Job() {};
};

/* Thread Pool */
class ThreadPool {
public:
	ThreadPool(int num, BOOL releaseJob);
	~ThreadPool();
	void Assignment(Job *job);
	void Work();
	BOOL IsStopping();

private:
	ThreadPool(const ThreadPool &);
	ThreadPool &operator=(const ThreadPool &);

	int m_iThread;
	AsynchQueue<Job> queue;
	std::list<HANDLE> threads;
	HANDLE hMutex;
	BOOL stopMe;
	BOOL m_releaseJob;
};


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -