亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? threadpool.h

?? 五行MMORPG引擎系統V1.0
?? H
字號:
/*///////////////////////////////////////////////////////////////////////////////////
線程管理
	包括線程池管理
	線程隊列管理
	線程封裝

	李亦
	2006.6.15
/*///////////////////////////////////////////////////////////////////////////////////


#ifndef _THREADPOOL_H_
#define _THREADPOOL_H_

#ifndef _PLATFORMSEMAPHORE_H_
#include "platform/platformMutex.h"
#endif

#ifndef _METHODDISPATCH_H_
#include "server/methodDispatch.h"
#endif

#ifndef _PLATFORMSEMAPHORE_H_
#include "platform/platformSemaphore.h"
#endif

#ifndef _PLATFORMTHREAD_H_
#include "platform/platformThread.h"
#endif


//namespace RPGServer
//{




/// Platform independent per-thread storage class.
class ThreadStorage
{
   U32 mTlsIndex;
public:
   /// ThreadStorage constructor.
   ThreadStorage();
   /// ThreadStorage destructor.
   ~ThreadStorage();

   /// returns the per-thread stored void pointer for this ThreadStorage.  The default value is NULL.
   void *get();
   /// sets the per-thread stored void pointer for this ThreadStorage object.
   void set(void *data);
};




/// Managing object for a queue of worker threads that pass
/// messages back and forth to the main thread.  ThreadQueue
/// methods declared with the TNL_DECLARE_THREADQ_METHOD macro
/// are special -- if they are called from the main thread,
/// they will be executed on one of the worker threads and vice
/// versa.
class ThreadQueue //: public Object
{
   class ThreadQueueThread : public Thread
   {
		friend class ThreadQueue;

		U32				m_uExpire;
		//BOOL				m_bStop;
      ThreadQueue		*mThreadQueue;

      public:
      ThreadQueueThread(ThreadQueue *);
      virtual void run(S32 arg);
   };

   friend class ThreadQueueThread;


	U32						mLifeTime;		//空閑線程生命周期
	U32						mMaxAmount;		//線程最大數量,工作線程數量超過此數,則需要排隊等候
	U32						mMinAmount;		//線程最小數量,小過此數,空閑線程將不被銷毀
	S32						mWorkingNum;	//工作狀態線程數量

   Vector<Thread *>		mThreads;			/// ThreadQueue工作線程列表 
   Vector<Functor *>		mThreadCalls;	/// 工作線程執行函數列表
   Vector<Functor *>		mResponseCalls;/// 工作線程響應函數列表

   SemaphoreInstance		mTaskSemaphore;	/// 工作線程工作協調信號管理
	MutexInstance			mMutex;		/// 工作線程執行函數調用信號管理

   /// Storage variable that tracks whether this is the main thread or a worker thread.
   //ThreadStorage	mStorage;

public:
	enum
	{
		NODEAD	= -1,
		DEADNOW	= 0,
		DEFAULT	= 30000,//默認的生命周期 30s
	};

protected:
   /// 隊列成員訪問存取鎖
   bool lock()		{ return mMutex.lock(true); }
   void unlock()  { mMutex.unlock(); }


   /// Posts a marshalled call onto either the worker thread call list or the response call list.
   void postCall(Functor *theCall);
   /// Dispatches the next available worker thread call.  Called internally by the worker threads when they awaken from the semaphore.
   bool dispatchNextCall();


   /// helper function to determine if the currently executing thread is a worker thread or the main thread.
   //bool isMainThread();
   //ThreadStorage &getStorage();


   /// called by each worker thread when it starts for subclass initialization of worker threads.
   virtual void threadStart(){}


	//新建一線程,并自動加到線程池中
	//如果創建后總數超過nMax,則創建失敗
	bool newThread();
	bool removeThread(ThreadQueueThread* pThread);

public:
   /// ThreadQueue constructor.  threadCount specifies the number of worker threads that will be created.
   ThreadQueue(U32 uInit,U32 nMin, U32 nMax,U32 uLife=DEFAULT);
   ~ThreadQueue();

   /// Dispatches all ThreadQueue calls queued by worker threads.  This should
   /// be called periodically from a main loop.
   void dispatchResponseCalls();
};


//////////////////////////////////////////////////////////////
//inline bool ThreadQueue::isMainThread() 
//{ 
//	return (bool) mStorage.get(); 
//}
//inline ThreadStorage &ThreadQueue::getStorage() 
//{ 
//	return mStorage; 
//}
// 



//////////////////////////////////////////////////////////////
/// Declares a ThreadQueue method on a subclass of ThreadQueue.
#define DECLARE_THREADQ_METHOD(func, args) \
   void func args; \
   void func##_body args

/// Declares the implementation of a ThreadQueue method.
#define IMPLEMENT_THREADQ_METHOD(className, func, args, argNames) \
   void className::func args { \
   FunctorDecl<void (className::*)args> *theCall = new FunctorDecl<void (className::*)args>(&className::func##_body); \
   theCall->set argNames; \
   postCall(theCall); \
   }\
   void className::func##_body args


//};//RPGServer

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品中文字幕一区二区三区| 国产精品久久网站| 在线电影国产精品| 91精品1区2区| 色综合久久久久综合| 成人一区二区三区中文字幕| 国产精品1区2区| 国产精品18久久久久久久网站| 精品一二三四在线| 精品亚洲国产成人av制服丝袜| 麻豆极品一区二区三区| 三级久久三级久久| 轻轻草成人在线| 久久国产三级精品| 黄色资源网久久资源365| 国产精品自拍一区| 国产成人在线影院| 成人av在线网站| 99视频一区二区三区| 日本久久电影网| 在线不卡中文字幕| 精品第一国产综合精品aⅴ| 久久久一区二区三区捆绑**| 中文字幕电影一区| 亚洲人精品一区| 亚洲第一成人在线| 久久99精品久久久久婷婷| 国产麻豆9l精品三级站| a在线欧美一区| 欧美日韩一区久久| 日韩精品一区二区三区中文精品| 久久久亚洲精品石原莉奈| 国产精品国产三级国产a| 一区av在线播放| 蜜臀99久久精品久久久久久软件| 国产一区二区三区最好精华液| 成人在线一区二区三区| 欧美亚洲高清一区二区三区不卡| 在线电影院国产精品| 国产午夜久久久久| 一区二区三区中文字幕电影| 日韩av午夜在线观看| 国产真实精品久久二三区| www.欧美亚洲| 在线电影一区二区三区| 欧美激情综合在线| 亚洲一区二区视频| 麻豆国产一区二区| 91美女在线视频| 91精品国产色综合久久不卡电影 | 在线观看www91| 日韩欧美一区在线| 成人欧美一区二区三区在线播放| 午夜欧美大尺度福利影院在线看 | 欧美mv日韩mv国产网站| 国产精品久久久久影院色老大| 同产精品九九九| 国产白丝网站精品污在线入口| 欧美在线观看视频一区二区 | 国产精品萝li| 亚洲gay无套男同| 成人毛片视频在线观看| 日韩一区二区三区观看| 国产精品的网站| 看电影不卡的网站| 91久久线看在观草草青青 | 蜜桃精品视频在线观看| 成人av午夜影院| 日韩欧美成人一区二区| 亚洲另类在线一区| 国产suv一区二区三区88区| 欧美精品乱人伦久久久久久| 国产精品美女久久久久av爽李琼| 日韩成人一级片| 91成人网在线| 国产精品电影一区二区三区| 国产在线一区二区| 欧美妇女性影城| 亚洲一二三四在线| 成人禁用看黄a在线| 欧美刺激脚交jootjob| 亚洲亚洲精品在线观看| 91影院在线免费观看| 久久久国际精品| 国产一区二区三区免费播放| 91精品国产综合久久精品图片 | 粉嫩aⅴ一区二区三区四区 | 亚洲日本丝袜连裤袜办公室| 国产酒店精品激情| 日韩女优制服丝袜电影| 亚洲午夜电影在线| 色婷婷国产精品综合在线观看| 久久久不卡网国产精品二区| 久久精品国产在热久久| 91精品欧美福利在线观看| 图片区小说区国产精品视频| 91老师国产黑色丝袜在线| 欧美国产成人精品| 国产乱码字幕精品高清av| 欧美va亚洲va香蕉在线| 日韩成人av影视| 欧美日韩亚洲综合一区| 亚洲伊人色欲综合网| 91在线视频网址| 成人欧美一区二区三区| 成人sese在线| 国产精品久久久久桃色tv| 国产精品一区在线观看乱码| 2021久久国产精品不只是精品| 九九热在线视频观看这里只有精品| 正在播放一区二区| 免费亚洲电影在线| 欧美成人三级电影在线| 经典三级视频一区| 久久综合久久综合久久综合| 久久丁香综合五月国产三级网站| 欧美一区二区三区视频免费播放 | 日韩精品一区第一页| 欧美日韩免费在线视频| 亚洲成人av中文| 在线电影国产精品| 久久成人久久爱| 国产亚洲成av人在线观看导航| 懂色av噜噜一区二区三区av| 国产精品久久久久久久久图文区| 91麻豆国产自产在线观看| 亚洲综合在线视频| 日韩欧美一二区| 国产成人av资源| 亚洲欧美日韩系列| 欧美专区亚洲专区| 奇米影视7777精品一区二区| 精品粉嫩aⅴ一区二区三区四区| 美腿丝袜亚洲色图| 久久日韩精品一区二区五区| 成人美女视频在线观看18| 亚洲激情图片一区| 日韩一二三四区| 国产不卡高清在线观看视频| 一区二区三区在线观看国产| 91麻豆精品国产91久久久资源速度| 久久aⅴ国产欧美74aaa| 中文字幕中文字幕在线一区 | 欧美大胆人体bbbb| 成人中文字幕在线| 午夜成人在线视频| 久久久99免费| 欧美亚洲综合在线| 日本不卡视频在线| 亚洲va在线va天堂| 亚洲精品在线免费播放| 色综合久久久久网| 激情五月激情综合网| 亚洲欧美日韩国产成人精品影院 | 国产目拍亚洲精品99久久精品| 91亚洲资源网| 久久国内精品视频| 一区二区三区欧美| 久久综合资源网| 欧美在线影院一区二区| 韩日av一区二区| 亚洲综合男人的天堂| 26uuu国产日韩综合| 欧美在线一二三四区| 国产高清久久久| 亚洲成人动漫在线免费观看| 欧美国产日产图区| 91精品国产色综合久久久蜜香臀| 92国产精品观看| 国产福利不卡视频| 日韩精品一区第一页| 亚洲免费在线看| 国产亚洲视频系列| 欧美一区二区久久| 日本久久一区二区| av中文字幕一区| 激情综合网激情| 三级久久三级久久久| 亚洲乱码国产乱码精品精98午夜 | 日本一不卡视频| 亚洲三级小视频| 国产日韩精品一区二区浪潮av | 亚洲超碰精品一区二区| 1000精品久久久久久久久| 久久伊99综合婷婷久久伊| 欧美精品乱码久久久久久按摩| 色综合色狠狠天天综合色| 国产不卡视频在线播放| 国产中文字幕精品| 日本 国产 欧美色综合| 亚洲午夜免费视频| 亚洲日本免费电影| 中文字幕中文字幕中文字幕亚洲无线| 久久综合色综合88| 欧美成人欧美edvon| 欧美一级欧美三级| 666欧美在线视频| 欧美日韩亚洲丝袜制服| 欧美日韩在线一区二区| 色综合久久66|