分析了muduo输出缓冲的设计。重点在于何时关注writeable事件,以及写完后移除对writeable的关注,并调用用户回调。此外,还要注意一些错误情况的处理。
Muduo : TcpConnection's Read Buffer
分析了muduo输入缓冲的设计,并学习了TCP分包处理。
Muduo : TcpConnection
学习了Muduo的TcpConnection的实现。它的生命期管理最为复杂,需要好好理解。港真,我已经用了洪荒之力来理解它了。
Muduo : TcpServer
学习了Muduo的TcpServer的实现。
Muduo : Acceptor
学习了Muduo的Acceptor的实现。Acceptor其实是对Channel、Socket的封装,如果理解了上一节的muduo:Reactor,那么理解Acceptor也不在话下。
Muduo : Reactor(EventLoop, Channel, Poller)
学习了Muduo的Reactor实现方法,包括事件循环EventLoop、IO Multiplexing的封装Poller、将事件与回调函数联系起来的Channel
Muduo : Thread-Safe Singleton
分析了Muduo介绍的thread-safe的Singleton的实现,通过
pthread_once
实现。此外本文也总结了其他几种实现Singleton的方法:如local-static
,DCL+memory berri
, 以及在C++11中的方法。Muduo : ThreadPool
分析了Muduo中ThreadPool的实现。 线程池ThreadPool用到了前面分析的Thread、MutexLock、Condition。ThreadPool可以设置工作线程的数量,并向任务队列放入任务。放入到任务队列中的任务将由某个工作线程执行。
Muduo : Condition
分析了Muduo中Condition的实现。
Muduo : MutexLock
分析了Muduo中MutexLock的实现。