最近的文章
Nginx 源码解析(十二):模块系统与动态加载
·11 分钟
系列开篇就说过,Nginx 的所有功能都是模块提供的。前面的文章你看到了 HTTP 模块、Event 模块、Upstream 模块在各自领域的工作方式,现在是时候把视角拉回到模块系统本身,,看看 Nginx 的模块到底长什么样,静态模块怎么初始化,动态模块又是如何通过 dlopen 加载进来的。
这篇文章会深入 ngx_module_t 的每一个字段,拆解 ngx_modules.c 的生成逻辑、ngx_count_modules() 的索引分配、ngx_load_module() 的动态加载路径,以及模块 commands 数组如何驱动配置文件解析器。
Nginx 源码解析(十一):线程池与异步 IO
Nginx 以事件驱动模型闻名,核心 worker 进程是一个单线程事件循环。但网络 I/O 之外还有一类阻塞操作,磁盘 I/O、gzip 压缩、SSL 握手,它们会卡住整个事件循环。这篇我们从源码角度拆解 Nginx 1.24.x 如何用线程池和异步 I/O 两条路径来解决这个矛盾。
Nginx 源码解析(十):定时器系统
·9 分钟
前面我们分析了 Nginx 事件循环的核心骨架,,ngx_process_events_and_timers() 是每个 worker 进程里的主循环函数。不过之前一直留了一个坑:传给 epoll_wait 的超时时间 timer 是怎么算出来的?超时后事件怎么处理?
这一篇就来填这个坑。Nginx 的定时器系统用红黑树管理所有事件超时,逻辑写得很紧凑,总共不到 300 行。
C++26 时代的 AI 应答:当 C++ 开始为机器学习铺路
·6 分钟
每次 AI 编程工具出新版本,评论区就有人问:“C++ 是不是快被 AI 淘汰了?”
这问题每年出现一次,跟季节一样准时。逻辑链大概是这样:AI 写 Python 又快又准 → Python 是 AI 的主力语言 → C++ 语法复杂、特性臃肿 → LLM 生成的 C++ 代码质量堪忧 → C++ 没前途。
表面看有点道理。C++ 的语法确实复杂,模板元编程的坑 AI 不一定能避开,指针错误、生命周期问题,这些对 LLM 来说全是重灾区。
但另一面是:C++ 26 标准可能是十多年来对 AI 场景最友好的一次更新。
这篇文章不讲焦虑,只讲事实:C++26 带来了哪些直接服务于 AI/ML 开发的新技术,以及委员会的提案方向在怎么回应"AI 时代"这个命题。

