文盘Rust -- 用Tokio实现简易任务池
原文中文,约1600字,阅读约需4分钟。发表于: 。Tokio 无疑是 Rust 世界中最优秀的异步Runtime实现。非阻塞的特性带来了优异的性能,但是在实际的开发中我们往往需要在某些情况下阻塞任务来实现某些功能。我们看看下面的例子fn main(){ let max_task = 1; let rt = runtime::Builder::new_multi_thread() ...
Tokio是Rust中最优秀的异步Runtime实现,但在资源不足的情况下,Tokio会抛弃某些任务。为了解决这个问题,可以使用JoinSet来管理派生出来的任务,通过set.join_next().await;保证至少一个任务被执行完成。当任务达到上限时,阻塞任务派生。当循环结束时,等待未完成的任务结束。这样可以实现预期的输出结果。