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

📄 thread.h

📁 oracle下调用数据泵接口进行远程数据导出和导入(数据恢复)的CORBA服务
💻 H
字号:
#ifndef MTLTHREAD_H_#define MTLTHREAD_H_#ifdef __UNIX__#include <pthread.h>#endif#ifdef _WIN32#include <windows.h>#endifclass Thread_T{private:	#ifdef _WIN32	HANDLE m_threadHandle;	DWORD threadID;	#endif		#ifdef __UNIX__	pthread_t threadID;	#endif	bool live;	bool hasJoined;public:	Thread_T():live(false),hasJoined(false){};		//return thread ID	#ifdef _WIN32		DWORD getID() const;	#endif	#ifdef __UNIX__	pthread_t getID() const;	#endif		//create and start the thread	void start();		//let the caller wait for syncronization	void join();		//stop the thread	void stop();		//return true is thread is running or wait	//else return false	bool isAlive() const;		//when run return , set the Thread live state to be false	void setDead();		//the function that will run in thread	virtual void run() = 0;		virtual ~Thread_T();};template <class T> class ThreadHandleT;typedef ThreadHandleT<Thread_T> ThreadHandle;//this function will be executed in thread//the arg is an object of MTLThread including derived object#ifdef __UNIX__void* thread_routine(void* arg);#endif #ifdef _WIN32DWORD WINAPI thread_routine(LPVOID arg);#endiftemplate <class T>class ThreadHandleT{private:	T* m_ptr;public:	ThreadHandleT(T* ptr = 0):m_ptr(ptr){};		ThreadHandleT<T>& operator=(T* rhs)	{		if (rhs != NULL)		{			delete m_ptr;		}		m_ptr = rhs;		return *this;	}	    	bool operator!() const { return m_ptr == 0; }    	operator bool() const { return m_ptr != 0; }	    	T* operator->() const { return m_ptr; }    	T* get() const { return m_ptr; }    	T& operator*() { return *m_ptr; }    	    	virtual ~ThreadHandleT()    	{    		if (m_ptr == NULL)    			return;    		delete m_ptr;    	}	};#endif

⌨️ 快捷键说明

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