GrabBag/Module/ThreadPool/_Inc/VrThreadPool.h

32 lines
633 B
C++

#ifndef VRTHEADPOOL_H
#define VRTHEADPOOL_H
#include <iostream>
#include <vector>
#include <deque>
#include "IVrThreadPool.h"
#include "VrThread.h"
class VrThreadPool : public IVrThreadPool
{
public:
VrThreadPool();
// 执行任务
virtual int ExecTask(ThreadExecFunc fExecFunc, void* pParam);
private:
// 获取一个可执行的线程
VrThread* _GetThread();
// 任务执行完成回调
void _ExecFinish(void* pObject);
private:
std::mutex m_mutexPool;
std::vector<VrThread*> m_vetThread;
std::deque<VrThread*> m_deqRecoveryThread;
};
#endif // VRTHEADPOOL_H