标签: rust
与该标签相关的所有文章 "rust".
-
Tokio:定时器、时间轮与精度
tokio 的定时器用的是分层时间轮(Hierarchical Timing Wheel),不是 min-heap。
-
tokio(一):运行时-从 mio 到异步运行时的完整设计
tokio 是 Rust 的异步运行时,提供工作窃取调度器、I/O 驱动、定时器、同步原语和任务管理。它在 Rust 异步生态中的角色等同于 Asio 的 iocontext + strand + timerqueue + 线程池的总和,但 Rust 选择了分层架构(mio → Future trait → tokio)而非 Asio 的单库大一统模式。理解 tokio 需要先理解它为什么不能只用 mio,以及 Rust async/await 的设计如何塑造了运行时的形态。
-
mio(一):Rust 异步生态的 Reactor 基石
mio 是 Rust 生态中对操作系统 I/O 事件通知机制(epoll/kqueue/IOCP)的薄封装,由 Carl Lerche 创建,当前版本 1.2.1。它刻意只做一件事:事件就绪通知。没有 timer、没有 buffer、没有 async/await。tokio 和整个 Rust 异步生态建在 mio 之上。它与 C++ Asio 的核心差异:Asio 选 Proactor 是因为要向 IOCP 对齐;mio 选 Reactor 是因为 Rust 语言特性(ownership + async/await)让 Reactor 模式更自然,而 IOCP 的适配代价由 mio 在内部消化。