@原创文章,转载请注明: 转载自 镜中影的技术博客
本文链接地址: 一个C++线程池的实现)
URL:http://blog.youkuaiyun.com/linkpark1904/article/details/50790949
线程池这玩意儿通常用在服务器端,服务器为了减少线程创建和析构的代价,所以弄出了线程池这个玩意儿,早先的服务器采用多进程多线程架构,来了一个客户端连接就创建一个执行体(线程或者进程)来应对客户端的请求,客户端离开后就将这个执行体析构,这样当然很不科学,创建线程析构线程也是有开销的,这样客户平凡断线掉线再上线,服务器当然受不了,于是,就有了线程池模型。
所谓线程池模型就是在服务器接受外部请求之前先把线程创建好放那儿,当任务来了时会向线程池申请工作线程处理任务;当任务处理完毕之后,工作线程并不会析构,而是继续等待后续的任务到来。
线程池框架设计
大概知道线程池是个什么东西了,那么就开始设计程序架构了。嗯,首先先分析一下几个角色之间的交互关系到底是怎么样的,看下面这张图: