cthread.h

来自「sun Linux 下的网络编程」· C头文件 代码 · 共 58 行

H
58
字号
/*******************************************************************
   *	cTthread.h
   *    DESCRIPTION:线程类
   *
   *    AUTHOR:
   *
   *    HISTORY:
   *
   *    DATE:2002-8-19
   *
   *******************************************************************/
  
#ifndef __CTHREAD_H__
#define __CTHREAD_H__

#include "osdef.h"

namespace yyc
{
	//定义线程函数指针
	typedef int(FUNC_THREAD)(void *);

	class cThread
	{
	private:
		pthread_t m_thrid;//线程ID
		FUNC_THREAD *m_pFunc;//线程函数
		void *m_pArgs;//传递给线程函数的参数
	private:
		static void *threadfunc(void *p);
	public:
		cThread();
		explicit cThread(FUNC_THREAD *pfunc);
		~cThread();
        bool operator==(const cThread& other) const;
		bool operator!=(const cThread& other) const;

		//启动线程 0-OK 
		int start(void * pArgs);
		//等待线程结束 0-OK
		int join();
		//分离线程,并停止
		int detach();

		void set_func(FUNC_THREAD *pfunc)
		{
			m_pFunc=pfunc;
		}
		//线程在运行为真,否则为假
		bool status()
		{
			return (m_thrid==0)?false:true;
		}
	};
}//?namespace yyc

#endif

⌨️ 快捷键说明

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