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

📄 thread.h

📁 Linux 下的线程池的源代码。很好用!
💻 H
字号:
#ifndef _THREAD_H_#define _THREAD_H_#include "../include/comhead.h"#include <semaphore.h>#include <pthread.h>//#include "ThreadPool.h"typedef sem_t Semaphore;typedef enum{    THREAD_IDLE =0,    THREAD_RUNNING,    THREAD_SUSPENDED,    THREAD_TERMINATED,    THREAD_FINISHED,    THREAD_DEAD}ThreadState;//define thread errocde#define Error_ThreadSuccess		0#define Error_ThreadInit		1#define Error_ThreadCreate		2	#define Error_ThreadSuspend 		3#define Error_ThreadResume	 	4	#define Error_ThreadTerminated		5#define Error_ThreadExit		6	#define Error_ThreadSetPriority		7#define Error_ThreadWakeup		8#define Error_ThreadYield		9#define Error_ThreadDetach		10#define Error_ThreadJoin		11class CThread{private:    int		m_ErrCode;    Semaphore	m_ThreadSemaphore;	//the inner  semaphore,which is used to realize    unsigned long m_ThreadID;	    bool	m_Detach;		//The thread is detached    bool	m_CreateSuspended;	//if suspend after creating    char*	m_ThreadName;     ThreadState m_ThreadState;		//the state of the thread					//the suspend operationprotected:    void 	SetErrcode(int errcode){m_ErrCode = errcode;}    static void* ThreadFunction(void*);    public:     CThread();    CThread(bool createsuspended,bool detach);    virtual ~CThread();    virtual void Run(void) = 0;    void	SetThreadState(ThreadState state){m_ThreadState = state;}    bool	Terminate(void);	//Terminate the thread    bool	Start(void);		//Start to execute the thread    void	Exit(void);    bool	Wakeup(void);        ThreadState	GetThreadState(void){return m_ThreadState;}//Get the state of the thread     int		GetLastError(void){return m_ErrCode;}    void	SetThreadName(char* thrname){strcpy(m_ThreadName,thrname);}    char*	GetThreadName(void){return m_ThreadName;}    int		GetThreadID(void){return m_ThreadID;}    int		GetThreadId(void){return m_ThreadID;}    bool	SetPriority(int priority);    int		GetPriority(void);    int		GetConcurrency(void);    void	SetConcurrency(int num);    bool	Detach(void);    bool	Join(void);    bool	Yield(void);    int		Self(void);};#endif

⌨️ 快捷键说明

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