Reactor 事件循环引入嵌入式模块: 适配性评估与冗余账
对一套已经基于「中断 + 线程 + IPC」自洽的嵌入式模块群,引入 Reactor 事件循环(libev)在大多数模块上是净成本,本质是「第二套并发模型叠第一套」。是否值得,取决于两个先决条件:数据源能否映射成 fd、模块是否已有完整的并发机制。
对一套已经基于「中断 + 线程 + IPC」自洽的嵌入式模块群,引入 Reactor 事件循环(libev)在大多数模块上是净成本,本质是「第二套并发模型叠第一套」。是否值得,取决于两个先决条件:数据源能否映射成 fd、模块是否已有完整的并发机制。
libev 不碰硬件中断,却为中断驱动的系统提供了完整的「慢事慢办」机制。它的定位可以一句话说清:下半部调度器。
libev 是一个单线程的事件循环库(Reactor 模式)。使用时把要等待的事件(文件描述符可读、定时器到期、跨线程通知)注册进去,事件发生后由库调用回调函数处理。在嵌入式系统中,它可以作为一个 RT-Thread 线程运行,STM32F407 上已用 select 后端验证了 ev_io、e
从 Simple-WebSocket-Server 重构而来,去掉 ASIO 依赖,用 poll Reactor + 固定 RingBuffer + 状态机实现一个 67KB 二进制、12KB/连接、热路径零堆分配的嵌入式 WebSocket 服务器。