Skip to content

对C++高性能网络库muduo进行重构,去除所有boost依赖,采用std标准库模式和智能指针,充分利用C++11/14/17新特性,并提供相关教程,使用户更加方便阅读与使用

Notifications You must be signed in to change notification settings

Kirin9900/muduo_cpp11_std

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Linux环境下C++多线程高性能网络库muduo

项目概述

本项目采用Reactor模式,对知名linux多线程高性能网络库muduo进行重构,去除所有boost依赖,全部采用标准库模式与智能指针,并充分利用C++14新特性,使用户更容易理解与使用,提供了多个测试程序。

muduo源码

项目实例

项目特点

  1. 设计并实现高并发TCP网络库,利用C++11特性,处理能力提升至每秒处理XX万次连接。

  2. 集成Acceptor EventThreadPool,TcpConnection,EventLoop,Channel,Poll等关键模块,优化网络性能,

  3. 创新引入one loop per thread模型,并结合Reactor模式,增强服务器处理并发请求的效率。

  4. 重构项目,摒弃Boost依赖,全面使用C++标准库,提升了项目灵活性。

  5. 引入现代内存管理策略,采用智能指针确保零内存泄露,同时通过atomic类型保障数据一致性。

  6. 优化缓冲区管理策略,参照Netty实践,通过双指针与snprintf提高日志记录的准确性和易读性

关键组件

  • Acceptor:负责监听客户端的连接请求。
  • EventThreadPool:管理一组工作线程,用于处理网络I/O事件。
  • EventLoop:每个线程中的核心组件,负责调度事件处理器。
  • Channel:封装了对文件描述符的操作,如读写、关闭等。
  • Poller:提供了高效的I/O多路复用机制,目前支持epoll

索引

智能指针

线程同步精要

muduo网络库主要结构

Buffer

定时器

muduo并发框架--EventLoop

muduo并发框架--Channel

muduo并发框架--Poller

TimeQueue

runInLoop

Tcp网络库--Acceptor

Tcp网络库--TcpServer

Tcp网络库--TcpConnection

Tcp网络库--多线程TcpServer

Tcp网络库--TcpClient

Tcp网络库--EPoll

参考书籍

《linux多线程服务端编程 使用muduo网络库 》

《linux高性能服务器编程》

About

对C++高性能网络库muduo进行重构,去除所有boost依赖,采用std标准库模式和智能指针,充分利用C++11/14/17新特性,并提供相关教程,使用户更加方便阅读与使用

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published