前言
Muduo库是陈硕个人开发的Tcp网络编程库,支持Reactor模型,想学习网络库的话,也推荐大家阅读陈硕写的《Linux多线程服务端编程:使用muduo C++网络库》。本人前段时间出于个人学习、找工作的目的用C++11重构了Muduo库中核心的Reactor架构。这篇博文对Muduo库中的Multi-Reactor架构代码进行逻辑梳理,同时认真剖析了作者每一处精妙的代码设计思想。目前我只重构并剖析了Muduo库中的核心部分,即Multi-Reactor架构部分,具体细分有以下几个模块:
- 网络相关模块:如Socket、InetAddress、TcpConnection、Acceptor、TcpServer等
- 事件循环相关模块:如EventLoop、Channel、Poller、EPollPoller等
- 线程相关模块:如Thread、EventLoopThread、EventLoopThreadPool等
- 基础模块:如用户态缓冲区Buffer、时间戳Timestamp、日志类Logger等