Skip to content

Latest commit

 

History

History
35 lines (18 loc) · 1.23 KB

File metadata and controls

35 lines (18 loc) · 1.23 KB

Muluo是一个Linux平台高效基础库,采用C++11编写。

命令行解析库:

  • 定义全局变量,程序启动时解析命令行参数并修改全局变量的值。

日志库:

  • 线程安全异步日志库,采用动态扩容缓冲区+可扩容双向循环链表设计。

JSON库:

  • 递归下降JSON解析器和生成器,支持UTF-8编码。

网络库:

  • 基于半同步/半反应堆模型(Half-Sync/Half-Reactor)网络并发模型。

  • 固定大小线程池,默认逻辑CPU数(Processor数), 可通过命令行参数更改。

  • 主线程采用轮询Round Robin分发任务给线程池中工作线程实现负载均衡。

  • 任务队列采用高性能非阻塞无锁队列moodycamel::ConcurrentQueue。

  • 定时器容器采用层级时间轮设计,可设置时间轮层级和刻度以及时钟步长。

  • 使用状态机和正则解析HTTP/1.1请求报文,实现URL路由分发及访问静态资源。

  • 基于JSON序列化/反序列化的RPC框架,采用单一TCP长连接。

协程库:

  • 基于ucontext族函数实现Stackful N : 1协程, 共享线程栈(默认大小1MB)。

  • Hook部分可能阻塞的Linux系统调用,协程中使用,阻塞等待期间切换到其它协程