blocking_pool:在异步Rust应用程序中运行同步IO的线程池

时间:2024-04-28 08:23:22
【文件属性】:

文件名称:blocking_pool:在异步Rust应用程序中运行同步IO的线程池

文件大小:13KB

文件格式:ZIP

更新时间:2024-04-28 08:23:22

Rust

Blocking_pool 用于在异步应用程序中运行同步I / O的线程池。 在异步代码中,阻塞线程(即调用一些需要很长时间才能返回的函数)是一个非常糟糕的主意。 这将阻止所有其他异步任务运行,并可能导致各种不良行为。 但是,有时需要阻止呼叫。 例如,许多库不是使用async构建的,但是您可能希望在async上下文中使用它们。 解决方案是拥有一个线程池,可以将阻塞代码卸载到该线程池中,以免阻塞主要的异步线程。 与提供的另一个提供类似功能的板条箱相比,此板条箱使用本地线程池而不是全局线程池。 这允许创建多个线程池,并且可以配置每个线程池,从而使您可以微调应用程序以实现最大速度。 此外,此板条箱还支持从外部作用域借用的生成阻止功能,这在blocking是不可能的。 例子 从异步代码调用[ std::fs::read_to_string ]: use blocking_pool :: T


【文件预览】:
blocking_pool-master
----.gitignore(19B)
----src()
--------task.rs(9KB)
--------child.rs(9KB)
--------lib.rs(16KB)
----Cargo.toml(476B)
----README.md(3KB)

网友评论