【小记备忘】之简单的线程池的设计【2014.03.12】
欢迎加入我们的QQ群,无论你是否工作,学生,只要有c / vc / c++ 编程经验,就来吧!158427611
线程池,一个多么牛逼的字眼。。
最近看了一个简单的开源网络库Micro-Development-Kit 的代码,看到了一个简单的线程池的实现。
So,备忘一下。
先看我根据代码总结的类图:
当然,functionBase 以及他的两个继承类都是我虚构的,代码中只用到了一个类Executor;
functionBase为虚基类,function_pointer代表执行方法入口为静态成员函数,function_method则代表执行方法是由对象以及对象成员函数实现。
task 具体的线程方法执行类,包含一个functionBase指针,并且提供方法的设置和执行接口。
thread 具体的线程类,封装一个线程的创建,启动,暂停,停止等线程操作。
threadpool 线程池类,内部包含一个线程池容器(保存启动的所有线程),一个任务容器(保存所有进入线程池的任务队列),以及提供线程池的设置,启动,状态查询接口。
欢迎加入我们的QQ群,无论你是否工作,学生,只要有c / vc / c++ 编程经验,就来吧!158427611