muduo_note

  • muduo 源代码

1 双缓冲异步日志

  • 一个背景线程负责收集消息,其余线程往这个日志线程发送日志消息。分为前端和后端。
    • 前端有AB两个缓冲,一个作为当前缓冲,一个作为预备缓冲,后端有CD缓冲
      首先加锁保护后续读写。判断当前缓冲是否满,消息入缓冲。满,缓冲入传送队列。将判断预备缓冲是否存在,预备缓冲作为当前缓冲,否则新建缓冲E
      通知条件变量。
    • 后端
      加锁,判断条件变量并设置超时时间。当前缓冲入队列。当前缓冲设置为C缓冲区。传送队列清空到待写队列。B缓冲设置为D缓冲,待写队列写入到磁盘
      C D缓冲设置为待写队列中的最后两个

2 类的关系UML图

  • 复合关系
    • has a
    • 1566383725642
    • 1566383830105
  • 委托关系
    • 1566383953338
  • 继承
    • 1566384037058
    • 1566384081389

3 muduo UML 类图

文章目录
  1. 1. 1 双缓冲异步日志
  2. 2. 2 类的关系UML图
  3. 3. 3 muduo UML 类图