直击 C++ 网络编程痛点:手写 Reactor 核心

很多 C++ 工程师卡在中级向高级过渡的瓶颈,核心原因并非语法不熟,而是缺乏对高并发、高性能分布式系统的底层设计认知。这门课不讲“调库”,而是要求纯手写实现一个基于 Reactor 模型的服务器。Reactor 是 Redis、Nginx 等主流网络框架的核心基石,掌握它意味着你不再只是调用 API,而是真正理解事件驱动、非阻塞 IO 以及多线程协作机制。课程从 Linux 操作系统底层出发,因为脱离 OS 谈并发是空中楼阁。通过亲手搭建架构,你将直面线程安全、资源竞争、内存管理等实际工程难题,这种“手搓”过程对理解高并发架构的思维模型至关重要,是突破技术天花板的必经之路。

适合对象与前置基础

这门课适合已经熟练掌握 C++ 基础语法,但缺乏大型网络项目实战经验,或对 Linux 系统编程感到模糊的开发者。如果你能编写简单的控制台程序,但面对 Socket 编程、线程同步、智能指针使用时容易困惑或出错,那么这门课正是为你设计的。它不假设你已经是专家,而是从 Linux 环境下的 Hello World 讲起,逐步引入系统调用、文件描述符、IO 模型等核心概念。你不需要是架构师,但需要有一定的 C++ 标准库使用能力,特别是容器和异常处理的基础。如果连指针和引用都还不清晰,建议先回头补基础语法,否则课程中的内存管理部分会非常吃力。本课重点在于“系统级”视角的建立,而非语言特性的堆砌。

学习路径建议与实战配合

建议不要线性从头看到尾,而是采用“概念-代码-调试”的循环模式。首先观看第 2 章关于 Linux 高级编程导学及基础命令的部分,确保你的开发环境配置正确,理解为什么必须在 Linux 下操作。接着,重点攻克 Reactor 模型的设计思想,思考单线程与多线程 Reactor 的优劣。在跟着视频写代码时,务必自己敲一遍,不要复制粘贴。资料包中的练习案例应作为调试对象,故意引入竞态条件或内存泄漏,然后使用 GDB 等工具进行定位,这才是内化的关键。学完此课后,你应能独立设计并实现一个具备基本高并发能力的 TCP 服务器,能够解释 epoll 机制在工作中的具体表现,并能运用智能指针管理生命周期。不要指望看完视频就达到百万并发,但你应该能清楚地说出每一行代码为何存在,以及如何扩展它。将课程中的代码片段拆解为独立的单元测试模块,反复演练线程同步的原语,这是将理论转化为肌肉记忆的最有效方式。

课程介绍

百万.png 2024-3-9 13:07 上传 是否具备高并发、高性能、分布式、事件驱动框架设计能力,是优秀C++中高级工程师的分水岭。本课程通过带大家纯手写一个Reactor服务器( Reactor是大名鼎鼎的redis、nginx、rpc等框架核心模型),让你高效掌握三高框架设计思维,同时让你对C++网络编程、线程、智能指针、C++11标准高阶技术等运用自如,最终倍增编程内功,突破进阶高级工程师技术瓶颈,提升职业核心竞争力。 第1章 C++从0实现百万并发的Reactor服务器-课程概览 1 节|7分钟 展开 第2章 C++工程师必须掌握-脱离Linux操作系统,谈并发没什么意义 9 节|83分钟 收起 视频: 2-1 Linux环境高级编程导学 02:26 视频: 2-2 Linux的Hello world 11:13 视频: 2-3 VSC

课程目录

百万.png   2024-3-9 13:07 上传 是否具备高并发、高性能、分布式、事件驱动框架设计能力,是优秀C++中高级工程师的分水岭。本课程通过带大家纯手写一个Reactor服务器( Reactor是大名鼎鼎的redis、nginx、rpc等框架核心模型),让你高效掌握三高框架设计思维,同时让你对C++网络编程、线程、智能指针、C++11标准高阶技术等运用自如,最终倍增编程内功,突破进阶高级工程师技术瓶颈,提升职业核心竞争力。
第1章 C++从0实现百万并发的Reactor服务器-课程概览 1 节|7分钟 展开
第2章 C++工程师必须掌握-脱离Linux操作系统,谈并发没什么意义 9 节|83分钟 收起 视频: 2-1 Linux环境高级编程导学 02:26 视频: 2-2 Linux的Hello world 11:13 视频: 2-3 VSCode的安装和配置 14:30 视频: 2-4 静态库和动态库 11:20 视频: 2-5 编译规则文件makefile 16:11 视频: 2-6 main函数的参数 07:19 视频: 2-7 gdb常用命令 09:57 视频: 2-8 gdb调试core文件 05:44 视频: 2-9 gdb调试正在运行中的程序 03:38
第3章 对网络通讯重要的-Linux的目录、文件和时间操作 4 节|35分钟 收起 视频: 3-1 Linux的时间操作 08:10 视频: 3-2 Linux的目录操作 06:24 视频: 3-3 Linux的系统错误 11:29 视频: 3-4 目录和文件的更多操作 08:03
第4章 进程控制和进程同步 12 节|136分钟 收起 视频: 4-1 Linux的信号 20:22 视频: 4-2 进程终止 09:11 视频: 4-3 调用可执行程序 11:58 视频: 4-4 创建进程 18:31 视频: 4-5 僵尸进程 12:58 视频: 4-6 多进程与信号 07:29 视频: 4-7 共享内存 09:21 视频: 4-8 循环队列 17:12 视频: 4-9 信号量 16:47 视频: 4-10 多进程的生产消费者模型 04:50 视频: 4-11 pthread线程库 03:13 视频: 4-12 UNIX环境高级编程 03:09
第5章 网络服务器基石-网络编程与网络通讯原理 12 节|161分钟 收起 视频: 5-1 网络编程基础导学 00:55 视频: 5-2 .第一个网络通讯程序 15:57 视频: 5-3 基于Linux的文件操作 14:42 视频: 5-4 socket函数详解 10:52 视频: 5-5 主机字节序与网络字节序 05:23 视频: 5-6 万恶的结构体 17:50 视频: 5-7 封装socket客户端 19:41 视频: 5-8 封装socket服务端 09:15 视频: 5-9 实现文件传输功能 20:57 视频: 5-10 多进程的服务端 13:44 视频: 5-11 三次握手与四次挥手 21:08 视频: 5-12 TCP缓存 09:50
第6章 高并发的基石-I/O多路复用 7 节|98分钟 收起 视频: 6-1 IO多路复用-select模型(上) 20:47 视频: 6-2 IO多路复用-select模型(下) 12:09 视频: 6-3 IO多路复用-poll模型 09:24 视频: 6-4 IO多路复用-epoll模型 13:32 视频: 6-5 阻塞&非阻塞的IO 16:25 视频: 6-6 水平触和&边缘触发 24:03 视频: 6-7 epoll的原理 01:20
第7章 开始手把手带大家从0实现百万并发的Reactor服务器 9 节|122分钟 收起 视频: 7-1 从0实现百万并发的Reactor服务器导学 02:29 视频: 7-2 优化epoll服务端程序,为封装做准备 14:28 视频: 7-3 优化epoll服务端程序,为封装做准备 06:13 视频: 7-4 把网络地址协议封装成InetAddress类 14:03 视频: 7-5 把socket的库函数封装成Socket类 19:48 视频: 7-6 把epoll的各种操作封装成Epoll类 14:12 视频: 7-7 把与TCP连接通道封装成Channel类(上) 11:18 视频: 7-8 把与TCP连接通道封装成Channel类(中) 29:20 视频: 7-9 把与TCP连接通道封装成Channel类(下) 09:53
第8章 Reacor模式中的事件驱动机制核心原理 7 节|64分钟 收起 视频: 8-1 用C++11的function实现函数回调 12:05 视频: 8-2 把事件循环封装成EventLoop类 07:07 视频: 8-3 把服务端封装成TcpServer类 09:10 视频: 8-4 把接受客户端连接封装成Acceptor类 11:55 视频: 8-5 把TCP连接封装成Connection类 07:34 视频: 8-6 在Channel类中回调Acceptor类的成员函数 06:59 视频: 8-7 在Acceptor类中回调TcpServer类的成员函数 08:55
第9章 来,先实现单线程的Reactor服务器的功能 9 节|132分钟 展开
第10章 单线程不能发挥多核CPU的效率-线程池技术实现多线程的Reactor服务器 4 节|58分钟 收起 视频: 10-1 简单优化Buffer 06:11 视频: 10-2 封装线程池ThreadPool类 13:35 视频: 10-3 多线程的主从Reactor模型 22:34 视频: 10-4 增加工作线程 14:53
第11章 优化Reactor服务器的种种细节 9 节|184分钟 收起 视频: 11-1 在多线程中如何管理资源? 11:51 视频: 11-2 用shared_ptr管理共享资源 23:08 视频: 11-3 用unique_ptr管理自己的资源 28:52 视频: 11-4 用eventfd实现事件通知 17:40 视频: 11-5 异步唤醒事件循环(上) 15:16 视频: 11-6 异步唤醒事件循环(下) 24:03 视频: 11-7 性能优化-阻止浪费,清除空闲的TCP连接(上) 15:36 视频: 11-8 性能优化-阻止浪费,清除空闲的TCP连接(中) 15:42 视频: 11-9 性能优化-阻止浪费,清除空闲的TCP连接(下) 31:00
第12章 真金不怕火炼-在正式PC服务器测试,见证每秒百万并发 4 节|82分钟 收起 视频: 12-1 如何让多线程的网络服务程序体面的退出 21:19 视频: 12-2 如何设计更高效的Buffer 17:12 视频: 12-3 性能测试-100万秒的吞吐量 16:07 视频: 12-4 如何基于Reactor服务器开发业务 26:33
第13章 课程总结-有问题常来问答区,给你更多帮助。