文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
1. 运行时
异步运行时(asynchronous runtime),基于事件驱动(event-driven, epoll ...)的非阻塞平台,内部包括调度器(scheduler)和定时器(timer)等组成部分。建立在 async/await Future 基础之上,专为 IO 密集型应用而设计。
- 多线程调度器。
- 异步版标准库。
添加依赖,按需选择模块:
# Cargo.toml [dependencies] tokio = { version = "1", features = ["full"] }
参考 API Feature flags 说明,可缩减编译模块数量,提升速度。
以宏标记异步入口函数,其目的是启动运行时。
#[tokio::main] async fn main() { println!("hello"); } /* fn main() { let mut rt = tokio::runtime::Runtime::new().unwrap(); rt.block_on(async { println!("hello"); }) } */
默认使用多线程调度器,可以参数配置。
// defaults to the number of cpus on the system. #[tokio::main(worker_threads = 2)] async fn main() { println!("Hello world"); }
// single-threaded #[tokio::main(flavor = "current_thread")] async fn main() { println!("Hello world"); }
基本使用方式与上卷所述一致。
async fn world() { println!("world"); } #[tokio::main] async fn main() { let w = world(); // Future print!("hello "); w.await; // execute & wait } // hello world
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论