linux 线程池类封装
来源:互联网 发布:英语录音软件 编辑:程序博客网 时间:2024/06/05 20:17
linux下封装的线程池类 和 任务基类
根据具体业务继承任务基类
线程池内使用条件变量来调度任务
下载地址: http://download.csdn.net/detail/mtour/8021853
#ifndef THREADPOOL_H#define THREADPOOL_H#include <pthread.h>#include <time.h>#include <unistd.h>#include <stdio.h>#include <list>using namespace std;#define DEFAULT_THREAD_COUNT 5class CThreadPool;// base taskclass CTask{public:CTask();virtual ~CTask();virtual int Do()=0; // the subclass must refined this functionpublic:time_t GetCreateTime(){return m_nCreateTime;};protected:time_t m_nCreateTime; // when create the taskint m_nDoFlag;};class CThreadItem{public:CThreadItem(int nID,CThreadPool* pThreadPool);~CThreadItem();void SetQuit(){m_nThreadFlag=0;};protected:CThreadItem(){};void OnTreatTaskThread();static void *TreatTaskThread(void* pUser) // 接收视频流线程{CThreadItem* pThis = (CThreadItem*)pUser;if (pThis){pThis->OnTreatTaskThread();}return 0;}private:int m_nID;pthread_t m_hThreadHandle;int m_nThreadFlag;CThreadPool* m_pThreadPool;};class CThreadPool{public: CThreadPool(int nThreadCount);~CThreadPool();int Init();void Fini();void AddThread(int nCount); void AddTask(CTask* pTask);public:pthread_cond_t m_taskCond;pthread_mutex_t m_taskMutex;public:list<CThreadItem*> m_threadList;pthread_mutex_t m_threadListMutex;list<CTask*> m_taskList;pthread_mutex_t m_taskListMutex;int m_nThreadCount;protected:CThreadPool(){};};#endif
0 0
- linux 线程池类封装
- Linux线程池C++封装实现
- Linux下的线程类封装
- linux C++ 面向对象线程类封装
- linux C++ 面向对象线程类封装
- linux C++ 面向对象线程类封装
- 实用线程封装(linux)
- linux 下 线程封装
- linux C++ 面向对象线程类(封装,继承,多态)
- boost function和bind,实现Linux线程类封装
- c++封装线程池
- 线程类封装(1)
- 线程类封装(2)
- 线程类封装(3)
- 线程类封装(4)
- 线程类封装(5)
- 一个线程封装类
- C++封装线程类
- eHarmony 与 MongoDB
- IK分词源码分析连载(四)--停用词+未切分词处理
- Java_反射的基本应用
- Kalman滤波
- JBoss AS 6.1.0 Final 启动过程分析-Main
- linux 线程池类封装
- PHP 方法错误 Warning: Missing argument 2 for user_shell(), called in E:\Www_local\bbs\user_sys.php
- cocos2dx回忆录
- 王立平-- Swift
- objc 基础知识(iPhone开发1)
- 三维凸包求凸包表面的个数(HDU3662)
- LIBXML2库使用指南2
- QtNetwork用法(二)之使用QT实现360的ctrl+ctrl功能
- qt编写sqlite数据库