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

📄 arwinthreadpool_t.h

📁 wangchuanDll.rar 网络传输的DLL 源代码
💻 H
字号:
//---------------------------------------------------------------------------

#ifndef ArWinThreadPool_TH
#define ArWinThreadPool_TH

#include <windows.h>
#include "ArThreadPool_T.h"

#define MAXTIME   20 * 1000
#define MAX_USED_NUM_TIME  8
#define MAX_NORMAL_NUM  8
//---------------------------------------------------------------------------
class  ArWinThread_T;
struct ArThreadNode_T
{
    ArWinThread_T* pThread;
    ArThreadNode_T* pPrior;
    ArThreadNode_T* pNext;
};
//---------------------------------------------------------------------------
class ArWinThreadPool_T:public ArThreadPool_T
{
public:

   bool  __stdcall Initial(int iSize, int iStep);//初始线程池规模
   void  __stdcall Destory(void);							//销毁
   ArThread_T* __stdcall GetThread(int iGrade = 0, bool bCyc = false);	//得到线程
   bool  __stdcall Free(ArThread_T* pThread);				//回收线程
   bool  __stdcall GetInfo(ArThreadPoolInfo_T &info);		//得到线程池信息
   bool  __stdcall TerminateAll(void);                    //强制结束所有
   bool  __stdcall GetVersion(char* strVersion);

    ArWinThread_T*  Allocate(int iGrade);
    bool Free(ArWinThread_T* pThread);

    ArWinThreadPool_T(int iInitialNum = 10, int iStep = 5);
    ~ArWinThreadPool_T();

    void  CheckBlockThread(void);
    void  CheckUsedNum(void);
    void  CheckThreadPool(void);
private:

   ArThreadNode_T* m_pNoUseFirst;
   ArThreadNode_T* m_pNoUseLast;
   ArThreadNode_T* m_pUsedFirst;
   ArThreadNode_T* m_pUsedLast;

   //CRITICAL_SECTION    m_csAllocate;
   //CRITICAL_SECTION	m_csFree;

   HANDLE               m_hWatchEvent;
   HANDLE				m_hHeap;

   int  m_iPoolNoUse;
   int  m_iInitialNum;
   int  m_iStep;
   int  m_iPoolUsed;
   int  m_iCycleThread;
   int  m_iAdjustAdd;
   int  m_iAdjustSub;
   int  m_iPoolLastUsed;
   int  m_iUsedNumLastTime;

   unsigned long  m_ulCheckThread;

   ArThreadNode_T* FindeNode(ArWinThread_T* pThread);
   void        ExpandList(void);
   bool Free(ArThreadNode_T* pNode);
   void        Substract(void);

   static unsigned int __stdcall  ThreadCheck(void* pPara);
};
#endif

⌨️ 快捷键说明

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