络腮胡菲菲 发表于 2026-1-28 08:06:39

【Muduo源码分析1】总体框架+变乱循环机制

文章中不免有错误之处,如若发现,恳请指正,感恩不尽!
muduo库变乱循环机制总体实现逻辑明白

   主从Reactor之间交互

   
[*]主Reactor重要负责吸收新毗连哀求,然后将该毗连发送给从Reactor举行处置惩罚   
[*]从Reactor则是监听主Reactor交付给它的哀求,然后对其举行处置惩罚
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvNzkxMTEzNDc2ZGRkNDMzNDg5ZGEyOWNjMGI5OWZiNzIucG5n

   单个Reactor实行逻辑

   
[*]EventLoop不停调用poll来监听多个文件形貌符的变乱   
[*]当poll检测到某个文件形貌符上变乱发生的时间,会关照EventLoop   
[*]EventLoop根据变乱找到对应的Channel,然后通过Channel预先注册好的回调函数,来处置惩罚对应的变乱
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvMTM2MDEzNjliNWYxNDIwYWFkMTE4YWM5YWQxNjY3MzYucG5n
   新毗连与Channel的关系
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvZmMxODczNjMzZjg2NDQ2OThlZGNmOWUwYjYyMmY5ZDQucG5n
总体架构

   代码分析范围
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvYWFhNzQ1ODFlZTRmNGViZjg4NmE0ZDA4NWFhZjg5ODIucG5n
   各模块的重要功能

   
[*]EventLoop 管理变乱循环,调理各类变乱的处置惩罚。   
[*]Poller 监听并管理全部的I/O变乱。   
[*]Channel 将详细的文件形貌符与变乱处置惩罚函数关联起来。
各模块逻辑分析

EventLoop模块

   变乱循环的核心模块,重要负责变乱的启动和维护变乱循环的运行,处置惩罚差别的变乱,该模块管理着poller和Channel模块。
    核心成员函数和变量
class EventLoop : noncopyable
{
public:
typedef std::function<void()> Functor;

EventLoop();
~EventLoop();

void loop();
void quit();

void runInLoop(Functor
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金
页: [1]
查看完整版本: 【Muduo源码分析1】总体框架+变乱循环机制