
Hat
译者
⚠️ 注意
如果您发现了错误,欢迎 参与贡献。
事件是 BIRD 事件驱动架构的核心组件之一。
协议代码 事件循环
──────── ────────
ev_send(event) ──────────► 全局事件队列
│
▼
事件循环迭代
│
▼
按 FIFO 顺序弹出事件
│
▼
调用 event->hook(event)
│
▼
事件处理完毕,释放或重用💡 译者注
BIRD 选择单线程事件驱动而非多线程模型是其核心架构决策之一。这个决策的权衡是:
为了缓解阻塞问题,BIRD 要求长耗时任务被分割成由事件或定时器链接的多个小步骤。这是"协作式多任务"的经典实现模式。
| 函数 | 说明 |
|---|---|
ev_send(ev) | 将事件加入全局事件队列 |
ev_postpone(ev) | 推迟事件执行(用于限流) |
ev_run(ev) | 立即运行事件回调(不经过队列) |
ev_init_list(l) | 初始化事件链表 |

译者
原文作者: <Ondrej Filip>, <Martin Mares>, <Maria Matejka>, <Ondrej Zajicek> 原文链接: https://bird.network.cz/?get_doc&v=20&f=prog-8.html#ss8.6 原文标题: 8.6 Events
遵循协议: CC BY-NC-SA 4.0 / 译者: hat / 翻译时间: 2026-05-01 / 本文链接: https://bird.xmsl.dev/docs/developer-guide/8-6-events.html