02 2025 档案
摘要:muduo提供了基于底层事件循环的定时器,通过底层提供的特殊文件描述符timerfd实现。TimerId、Timer和TimerQueue是定时器的主要实现类。 timerfd timerfd是linux提供的基于文件描述符的定时器接口。他通过文件描述符与定时器关联,当定时器到期时,文件描述符会变为
阅读全文
摘要:Acceptor Acceptor类是连接的处理器,负责监听并处理到来的新连接 class Acceptor : noncopyable { public: typedef std::function<void (int sockfd, const InetAddress&)> NewConnect
阅读全文
摘要:muduo网络库核心设计为one loop one thread,即一个线程一个事件循环。其中,主Reactor负责监听新连接,并将新连接平均分配到从Reactor中,而从Reactor则对分配到其上的用户进行io交互,接收并处理用户发来的数据,包括消息的回复(实际上,在使用中需要手动设置React
阅读全文
摘要:Channel类、EventLoop类和Poller类是muduo库网络架构中Reactor的重要组成部分。在muduo网络库(即Reactor模式)中,Reactor是一个中心调度器,负责监听所有的文件描述符,当文件描述符就绪,即事件发生时,调度器将事件分配给相应的事件处理器进行处理。如图(网上找
阅读全文
摘要:TimeStamp TiemStamp类是muduo中的时间戳类,用于获取当前时间的格式化字符串。 成员变量 int64_t microSecondsSinceEpoch_; TimeStamp类只有一个成员变量microSecondsSinceEpoch_,它保存了从1970年1月1日00:00:
阅读全文
摘要:前言 Muduo 是一个基于 Reactor 模式的高性能 C++ 网络库,由陈硕大佬开发,主要用于 Linux 环境下的多线程服务器编程。它强调易用性和高性能,适合开发高并发的网络应用。 由于muduo库没有大规模的模版元编程和泛型编程(这里不得不点名一下Boost)以及其他非常负责抽象的设计,同
阅读全文