Muduo网络库源码剖析 | 线程池 ThreadPool的设计与实现

文章目录

    • ThreadPool.h
    • ThreadPool.cc


线程池本质就是一个生产者-消费者模型,它维护一个线程队列和任务队列。一旦任务队列当中有任务,相当于生产者生产了东西,就唤醒线程队列中的线程来执行这些任务。那么,这些线程就相当于消费者线程。

Muduo库的线程数目属于启动时配置当线程池启动时,线程数目就已经固定下来。

由于Muduo库是基于对象编程的设计理念,所以Muduo库的任务队列中存放的都是回调函数,线程池的另外一种实现方式就是将Muduo库中任务队列换成一个taskbase的基类指针,通过虚函数多态来实现对任务的动态调用,但是如果是这样设计的话,Muduo库就必须提供一个taskbase的基类,外部的使用者就必须继承该基类才能够使用Muduo库。


ThreadPool.h

class ThreadPool : noncopyable
{
 public

你可能感兴趣的:(C++程序设计)