手写线程池 - C 版
扫描二维码
随时随地手机看文章
张飞吃豆芽 -- 小菜一碟(so easy)
。关于线程的在此就不再过多阐述,对于前面文章中设计的线程池,按照面向对象的思想进行拆分可以分为两部分(纯属个人见解,有不同的想法也正常):任务队列类 和线程池类。1. 任务队列
1.1 类声明
// 定义任务结构体
using callback = void(*)(void*);
struct Task
{
Task()
{
function = nullptr;
arg = nullptr;
}
Task(callback f, void* arg)
{
function = f;
this->arg = arg;
}
callback function;
void* arg;
};
// 任务队列
class TaskQueue
{
public:
TaskQueue();
~TaskQueue();
// 添加任务
void addTask(Task