线程池
一种后台组件, 线程池用来维护多个线程。
线程池适合场景
单位时间内处理任务频繁,且每个任务处理时间短。即时创建,即时销毁的开销过大,影响实时性。
类
template <typename T>
class threadpool{
public:
threadpool(int thread_number);
~threadpool()
bool append(T * request) // 添加工作队列
static void* worker(void* arg); //回调函数
void run(); //在worker中调用eventloop;
private:
int m_thread_num;
int m_max_rq;//最大工作队列
int m_stop; // 标志位,
pthread t*m_thread // 线程池数组。
std::list<T *> m_workerqueue; //工作队列
//互斥锁
//条件变量或者信号量
};
接口
(1)创建线程
(2)添加任务队列
(3)回调函数(线程死循环,阻塞线程, 等待队列任务,执行队列中任务)
(4)删除队列
下面展示一些 内联代码片
。
// A code block
var foo = 'bar';