1 个不稳定版本
0.1.0 | 2020 年 9 月 1 日 |
---|
#1131 在 并发
7KB
线程
该crate包含用于抽象各种线程池功能的特性。此crate有两个用途
线程池用户
你正在开发一个需要某种线程池的 lib
,但你不想强制使用特定的一种?特别是,每个crate似乎都有自己的线程池,管理这些线程池是一项艰巨的任务。
以 ThreadPoolSyncConsumer
或 ThreadPoolASyncConsumer
为基础。你的crate的消费者可以选择他们想要的实现。
线程池创建者
你正在开发一个新的线程池crate?但由于已经有许多池,因此将其整合到这个生态系统中很困难。此crate是通过分析许多线程池crate构建的,尽管你的实现可能不完全符合我们的特性。实现 ThreadPoolSyncConsumer
或 ThreadPoolASyncConsumer
特性可能会使你的crate对其他人更具吸引力。
如果支持建造者模式,则需要实现其他特性,例如设置 thread_max
动机
在Rust crates中有许多线程池已经深度集成,但没有一个 特性
可以涵盖所有
-
tokio
https://docs.rs/tokio/0.2.22/tokio/runtime/struct.Runtime.html#method.new -
futures
https://rust-lang-nursery.github.io/futures-api-docs/0.3.0-alpha.4/futures/executor/struct.ThreadPool.html -
rayon
https://doc.servo.org/rayon/struct.ThreadPool.html -
threadpool
https://docs.rs/threadpool/1.8.1/threadpool/struct.ThreadPool.html - (范围外)
scoped_threadpool
http://kimundi.github.io/scoped-threadpool-rs/scoped_threadpool/struct.Pool.html -
scheduled_thread_pool
https://docs.rs/scheduled-thread-pool/0.2.5/scheduled_thread_pool/struct.ScheduledThreadPool.html -
tiny-http
https://github.com/tiny-http/tiny-http/blob/master/src/util/task_pool.rs -
tokio_io_pool
https://docs.rs/tokio-io-pool/0.1.6/tokio_io_pool/struct.Runtime.html -
uvth
https://docs.rs/uvth/4.0.1/uvth/struct.ThreadPool.html -
workerpool
https://docs.rs/workerpool/1.2.0/workerpool/struct.Pool.html -
rusty_pool
https://docs.rs/rusty_pool/0.4.3/rusty_pool/struct.ThreadPool.html
存在一个特质试图实现类似的功能,但增加了大量的依赖
许可证
在以下许可证中选择一项
- Apache License, Version 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选。
贡献
除非您明确声明,否则您根据Apache-2.0许可证定义的任何有意提交以包含在作品中的贡献,都将按上述方式双许可,不附加任何额外的条款或条件。