futures :: select之间有什么区别!和tokio :: select?

问题描述 投票:1回答:1

我正在使用Tokio,我想接收来自两个不同mpsc队列的请求。 select!似乎很可行,但是我不确定futures::select!tokio::select!之间有什么区别。在哪种情况下,您应该使用另一种方法?

asynchronous rust rust-tokio
1个回答
0
投票

tokio::select!是基于futures::select!的经验而构建的,但对其进行了一些改进以使其更符合人体工程学。例如。 futures-rsselect!版本需要Future来实现FusedFuture,而tokios版本不再需要此。

相反,tokios版本在宏中支持前提条件,以涵盖相同的用例。

CR in the tokio repo详细说明了这一点。

此更改也是proposed for the futures-rs version,但到目前为止尚未实现。

如果您的项目中已经包含了tokio,则最好使用tokios版本。但是,如果您还没有并且不想接受其他依赖关系,那么futures-rs版本也将以几乎确定性的方式涵盖大多数用例。通过Future扩展方法,可能仅需要将某些FusedFuture转换为FutureExt::fuse()

© www.soinside.com 2019 - 2024. All rights reserved.