遮光: 0.1
虚化: 0px
圆角: 0px
🏠 首页 💻 技术 🗣️ 杂谈 📦 其他 👤 关于

学习路线

2026-09-17

学习顺序不是由上到下,而是由浅入深,广度遍历。—LimoVane

学习路线
Modern C++ 面向对象
现代 C++ 核心特性
模板元编程
STL 容器 & 空间配置器
Linux & 并发 文件系统 & I/O 操作
Linux 内存管理
进程(生命周期 & IPC)
线程同步原语机制
池式组件 手写线程池与性能分析(项目)
内存池的实现与场景分析(项目)
MySQL 连接池的实现(项目)
原子操作与无锁队列(项目)
网络 & I/O 复用 TCP 协议栈
I/O 多路复用
事件驱动
中间件:Redis & MySQL Redis 数据结构
Redis 事件循环与持久化
Redis 分布式与高可用
MySQL 架构与调优
服务端项目 muduo 网络库
事件抽象与分发
连接与生命周期控制
用户态协程调度器
协程化 I/O 与 Hook 机制
异步 RPC 框架

-------------以下内容为AI生成,目的为快速记录,未来将会由我自己总结-------------

1.0 Modern C++ 核心语言体系

  • 1.1 现代语法与底层对象模型
    • 1.1.1 对象生命周期与内存布局
      • 虚函数表(vptr/vtbl)与多继承/虚继承开销
      • 结构体字节对齐与 Cache Line 伪共享规避
      • 对象构造/析构顺序与深浅拷贝边界
    • 1.1.2 现代 C++ 核心特性(C++11/14/17/20)
      • 移动语义与右值引用:移动构造、std::move 与完美转发 std::forward
      • 资源安全管理:unique_ptr、shared_ptr 原理及引用计数原子性
      • 函数对象抽象:Lambda 表达式、std::function 与 std::bind 闭包原理
      • C++20 新特性演进:Concepts 约束、Ranges 视图、协程(Coroutines)底层机制
  • 1.2 泛型编程与 STL 体系
    • 1.2.1 模板元编程
      • 函数模板与类模板特化/偏特化
      • SFINAE 机制与 std::enable_if
    • 1.2.2 核心容器实现与空间配置器
      • vector 动态扩容机制与迭代器失效
      • unordered_map 哈希冲突处理与开链法
      • std::allocator 内存池设计与二级空间配置器

2.0 Linux 系统与底层并发编程

  • 2.1 系统调用与虚拟内存
    • 2.1.1 文件系统与 I/O 操作
      • 文件描述符(FD)分配机制与系统打开文件表
      • 零拷贝技术落地:mmap 映射、sendfile、splice
    • 2.1.2 Linux 内存管理
      • 虚拟地址空间划分、MMU、页表与缺页异常处理
      • 堆内存动态分配系统调用:brk 与 mmap 的边界
  • 2.2 多进程与多线程控制
    • 2.2.1 进程生命周期与 IPC
      • fork 写时复制(COW)、僵尸进程与孤儿进程治理
      • 高性能进程间通信:共享内存(shm)与 Unix Domain Socket
    • 2.2.2 线程同步原语机制
      • 互斥锁(Mutex)与死锁预防
      • 条件变量(Condition Variable)与虚假唤醒规避
      • 读写锁、自旋锁适用场景与性能对比

3.0 核心工业级组件手写实现(池式与高性能组件)

  • 3.1 池式组件开发
    • 3.1.1 手写线程池与性能分析(项目)
      • 线程池的异步处理使用场景
      • 核心构成:任务队列设计、Worker 线程生命周期管理
      • 任务回调与条件等待机制
      • 动态扩缩容策略设计
      • 对比拓展:Nginx 线程池实现对比分析
    • 3.1.2 内存池的实现与场景分析(项目)
      • 内存碎片(内碎片与外碎片)成因与性能损耗
      • 固定大小内存块分配机制与空闲链表组织
      • 大小内存分级管理策略
      • 内存泄漏的检测机制(集成 ASan / Valgrind)
      • 对比拓展:Nginx 内存池 / tcmalloc 核心思想剖析
    • 3.1.3 MySQL 连接池的实现(项目)
      • 连接建立/释放的性能瓶颈与 TCP 握手开销分析
      • 连接请求归还、超时清理与心跳保活策略
      • 断线重连机制与连接数上限自适应
  • 3.2 高性能无锁组件
    • 3.2.1 原子操作与无锁队列(项目)
      • CAS(Compare-And-Swap)原理与 ABA 问题规避
      • C++11 内存模型(Memory Order:acquire-release, relaxed)
      • 单生产者单消费者(SPSC)环形无锁队列实现

4.0 网络编程与 I/O 多路复用模型

  • 4.1 传输层网络协议深挖
    • 4.1.1 TCP 协议栈底层剖析
      • 三次握手/四次挥手状态机运转
      • TIME_WAIT 与 CLOSE_WAIT 异常成因与排查手段
      • 滑动窗口、拥塞控制算法(慢启动、拥塞避免、快速重传)
  • 4.2 高并发 I/O 架构
    • 4.2.1 I/O 多路复用模型
      • select、poll 的底层线性轮询瓶颈
      • epoll 内核红黑树管理与就绪双向链表机制
      • 边缘触发(ET)与水平触发(LT)代码编写差异及非阻塞读写规约
    • 4.2.2 并发事件驱动模式
      • Reactor 模式深度拆解:单 Reactor 单线程、主从 Reactor 多线程
      • 异步事件分发机制与定时器设计(时间轮 vs 最小堆)

5.0 存储中间件:Redis 与 MySQL 实战剖析

  • 5.1 Redis 协议、内部原理与源码精读
    • 5.1.1 Redis 核心数据结构源码级剖析
      • SDS(简单动态字符串)扩容机制与内存对齐
      • dict(字典)渐进式 rehash 机制与安全迭代器
      • zset 底层混合结构:ziplist/listpack 与 skiplist(跳表)原理
    • 5.1.2 Redis 事件循环与持久化
      • ae 事件驱动模型(aeEventLoop)单线程高效原理
      • RDB 快照(COW 原理)与 AOF 重写机制
    • 5.1.3 Redis 分布式与高可用
      • 哨兵模式(Sentinel)故障转移逻辑与主从同步断点续传
      • 基于 Redis 的分布式锁安全性分析(Redlock 算法缺陷探讨)
  • 5.2 MySQL 架构与调优
    • 5.2.1 InnoDB 存储引擎内核
      • B+Tree 索引物理存储结构与聚簇/非聚簇索引差异
      • 事务 ACID 特性实现:Undo Log、Redo Log 与双写缓冲
      • MVCC(多版本并发控制)原理与 ReadView 生成规则
      • 锁机制排查:行锁、间隙锁(Gap Lock)、Next-Key Lock 死锁日志分析

6.0 工业级服务端项目进阶(重构与二次开发)

  • 6.1 高性能网络库体系(Muduo 核心架构重构)
    • 6.1.1 事件抽象与分发
      • EventLoop 事件循环封装与跨线程唤醒(eventfd 应用)
      • Channel 事件通道与 Poller 抽象层的解耦实现
    • 6.1.2 连接与生命周期控制
      • TcpConnection 的多线程安全生命周期管理(基于 enable_shared_from_this)
      • 应用层双缓冲(Buffer)读写设计与非阻塞数据收发
  • 6.2 协程与高性能框架演进(Sylar 模块批判性学习)
    • 6.2.1 用户态协程调度器
      • ucontext_t 寄存器上下文切换与性能损耗分析
      • N:M 协程调度模型:调度线程池与任务无锁队列
    • 6.2.2 协程化 I/O 与 Hook 机制
      • 系统调用 Hook 技术:替换 libc 原生 Socket API 实现自动切协程
      • 协程同步原语(Fiber Mutex / Fiber Semaphore)
  • 6.3 现代微服务演进(二选一建议替换方案)
    • 6.3.1 高性能异步 RPC 框架(替代老旧业务项目)
      • 基于 Protobuf 的通信协议设计与序列化反序列化优化
      • Zookeeper/ETCD 服务注册发现与心跳机制
      • 连接池管理与负载均衡策略(轮询、一致性哈希)