mini-muduo版本传送门
version 0.00 从epoll构建muduo-1 mini-muduo介绍
version 0.01 从epoll构建muduo-2 最简单的epoll
version 0.02 从epoll构建muduo-3 加入第一个类,顺便介绍reactor
version 0.03 从epoll构建muduo-4 加入Channel
version 0.04 从epoll构建muduo-5 加入Acceptor和TcpConnection
version 0.05 从epoll构建muduo-6 加入EventLoop和Epoll
version 0.06 从epoll构建muduo-7 加入IMuduoUser
version 0.07 从epoll构建muduo-8 加入发送缓冲区和接收缓冲区
version 0.08 从epoll构建muduo-9 加入onWriteComplate回调和Buffer
version 0.09 从epoll构建muduo-10 Timer定时器
version 0.11 从epoll构建muduo-11 单线程Reactor网络模型成型
version 0.12
相关推荐
muduo网络库:高性能C++网络编程实践
Reactor模式是现代网络编程中的核心架构,通过事件驱动机制实现高效IO处理。其核心原理是将IO事件注册到事件循环(EventLoop),由系统通知应用程序事件就绪,从而避免主动轮询的资源浪费。这种非阻塞IO模型特别适合开发高并发的TCP服务器应用,能够显著提升CPU利用率。在实际工程中,基于Reactor模式的网络库如muduo通过"one loop per thread"的线程模型,结合自动扩容的Buffer设计和时间轮定时器算法,为开发者提供了高性能、易用的网络编程框架。muduo网络库作为典型的C
timerfd和epoll整理
timerfd和epoll整理
C++实现高性能HTTP服务器:从Reactor模型到高并发优化
网络编程是现代软件开发的基石,其核心在于高效处理大量并发连接。I/O多路复用技术,如Linux的epoll,通过Reactor模式实现单线程管理多个连接,解决了传统阻塞I/O的性能瓶颈。这种模型在构建高性能服务器时至关重要,能显著提升吞吐量和资源利用率。在实际工程中,结合对象池、缓冲区复用等优化手段,可进一步减少内存分配开销。这些技术广泛应用于需要极致性能的场景,如高频交易、实时通信和嵌入式系统。本文聚焦于使用C++从零构建一个可嵌入的HTTP/1.1服务端,深入探讨epoll事件驱动、HTTP协议解析以及
Epoll和timerfd结合实现定时器
主要记录不太熟悉的linux系统调用;
epoll定时器实现系列文章:linux timerfd系列函数总结,有firecat注释
https://www.cnblogs.com/wenqiang/p/6698371.htmlfirecat注:引自muduo一书,8.2节。https://github.com/chenshuo/muduo/blob/master/backport.diff传统网络库的reactor通过控制select和poll,epoll的等待时间(epoll_wait函数的参数)来实现定时。而Linux内核...
日常知识点之遗留问题梳理(timerfd+epoll实现定时器的功能)
定时器一直是自己心心念念的概念,以前只是草草使用,这次对部分遗留作简单整理。总结:思考最简单定时器的逻辑,timerfd相关接口逻辑,epoll进行关联事件逻辑。
Linux环境编程 用户层定时器使用一 timerfd的使用
timerfd是linux提供的定时器机制,基于文件描述符,定时器精度最高可达纳秒级别,接口包括定时器创建、启动定时器、关闭定时器和删除定时器。下面介绍一下timerfd API接口和一个结合epoll使用的定时器demo。 1. 创建定时器 #include <sys/timerfd.h> /* * 功能 : 创建定时器 * 返回值:成功返回定时器文件描述符,失败返回-...
【epoll和timer结合,实现定时调用】
epoll和timer使用
muduo Timer/TimerQueue类详解
muduo Timer和TimerQueue当我们想要一个定时任务时,先创建一个 Timer 对象。Timer 里保存:对应的到期回调函数(TimerCallback)第一次到期时间(expiration_)重复间隔 interval_(0 表示只执行一次)是否重复(repeat_)全局唯一的 sequence_ 编号(64 位原子递增)TimerQueue 早已随着 EventLoop 创建好(每个 EventLoop 独享一个 TimerQueue)。
muduo定时器、多线程模型及epoll的封装
timerfd是Linux为用户程序提供的一个定时器接口,这个接口基于文件描述符。 clock_gettime函数可以获取系统时钟,精确到纳秒。需要在编译时指定库:-lrt。可以获取两种类型时间: CLOCK_REALTIME:相对时间,从1970.1.1到目前的时间。更改系统时间会更改获取的值。也就是,它以系统时间为坐标。 CLOCK_MONOTONIC:与CLOCK_REALTIME...
C++高性能定时器:从时间轮原理到工业级实现
定时器是高性能服务器开发中的核心组件,用于管理延迟或周期性任务的调度。其基本原理是通过特定的数据结构(如最小堆、红黑树或时间轮)来组织和管理定时任务,确保任务能在预定时间被高效触发。时间轮(Timing Wheel)作为一种经典算法,通过将时间流离散化为固定间隔的槽位,实现了近乎O(1)复杂度的定时器插入、删除和触发操作,技术价值在于能极大提升高并发场景下海量定时任务的处理吞吐量,降低延迟。这一特性使其广泛应用于游戏服务器技能冷却、金融交易系统超时控制、分布式系统心跳检测等对实时性要求极高的场景。本文聚焦于
【C++/Linux实战项目】仿muduo库实现高性能Reactor模式TCP服务器(深度解析)
本文实现了一个基于多Reactor模式的高性能TCP服务器,项目完整实现了TCP服务器的核心功能,包括连接管理、事件监控、数据收发等,可作为网络编程学习的实践案例。
C++高性能定时器实现:从基础原理到异步编程实战
在异步编程中,定时器是实现事件驱动和时间管理的关键组件,其核心原理是通过高效的数据结构与事件循环机制,在指定时间触发预设任务。从技术价值看,高性能定时器能显著提升程序的并发处理能力和响应实时性,尤其在网络服务、游戏引擎、音视频处理等高并发场景中至关重要。常见的实现方案包括基于优先队列、红黑树的时间管理,以及更高效的时间轮算法,这些方案需要平衡任务调度精度、内存开销与并发性能。本文聚焦于C++定时器的设计与优化,通过分析任务容器选择、锁竞争优化等核心问题,深入探讨如何构建稳定可靠的定时器模块,以满足异步编程中
C++ 仿 muduo 库实现高并发服务器
该项目实现了一个基于Reactor模式的高并发TCP服务器组件,包含Server模块(管理连接、事件、定时任务)和HTTP协议模块。采用多Reactor多线程模型,利用I/O多路复用、时间轮超时管理和自定义缓冲区,支持非活跃连接释放、协议切换和静态资源处理,最终搭建出灵活可扩展的高性能HTTP服务器。
C++高性能跨平台网络编程实战:从IO模型到Boost.Asio应用
网络编程是构建分布式系统的基石,其核心在于高效管理海量并发连接与数据传输。从原理层面看,IO模型决定了程序处理网络请求的基本方式,其中IO多路复用技术通过单线程监控多个连接,显著提升了资源利用率。在技术价值上,高性能网络框架能够支撑游戏服务器、金融交易等低延迟、高吞吐场景。应用层协议设计(如长度前缀格式)与缓冲区优化(如零拷贝技术)是保障通信效率的关键实践。本文聚焦于C++领域,探讨如何利用Boost.Asio等现代库实现跨平台高性能网络服务,涵盖Reactor/Proactor模式选型、连接生命周期管理及
C++20协程实战指南:从网络库到移动端与多媒体开发
协程是一种用户态的轻量级线程,它允许程序在单线程内通过挂起与恢复实现并发,其核心原理在于保存和恢复执行上下文,避免了传统多线程的上下文切换开销。这项技术为高并发编程带来了显著的性能提升和代码简化价值,尤其适用于需要处理大量I/O操作的场景,如网络服务器、游戏引擎和实时数据处理。在C++20标准中,协程通过co_await、co_return等关键字提供了语言级的原生支持,使得开发者能够以同步的编码风格编写高性能的异步程序。本文将深入探讨如何基于C++20协程构建异步架构,并分享其在网络编程、移动端集成以及多
【高性能网络库与HTTP Server系列】:基于主从 Reactor 模型实现高性能 C++ 网络库与 HTTP Server
ReactorNet 的核心并不是简单地调用epoll写一个服务器,而是围绕 Reactor 模型重新组织整个网络库的结构。1. 基于 epoll ET 和非阻塞 I/O 实现事件驱动网络模型2. 使用 Main Reactor + Sub Reactor 拆分监听连接和已连接 fd 的 I/O 处理3. 封装 EventLoop、Channel、Epoller、Socket、Acceptor 等网络库基础组件4. 使用 TcpConnection 管理连接状态、输入输出缓冲区和连接生命周期。
C++校招简历实战项目精选:从HTTP服务器到游戏引擎的硬核技能提升
C++作为高性能系统编程的核心语言,其价值在于对计算机底层原理的深刻理解和工程实践能力。从内存管理、多线程并发到网络通信,掌握这些基础概念是构建复杂系统的前提。理解事件驱动模型、协议解析等原理,能够帮助开发者设计出高性能的后端服务。在技术价值层面,通过实现具体项目,可以将理论知识转化为解决实际问题的能力,例如构建高并发服务器或音视频处理工具。这些技能在后端开发、音视频处理、游戏引擎和嵌入式系统等应用场景中至关重要。本文精选了覆盖多个热门方向的C++实战项目,如基于Epoll的高性能HTTP服务器和简易RPC
343




被折叠的 条评论
为什么被折叠?



