Files
tokio/tokio-threadpool
David Kellum 491f15827b General rustdoc improvements (#450)
* Normalize links to docs.rs/CRATE/M.N/...

docs.rs is smart enough to show docs for the latest M.N.P release when
M.N is used in the link. For example:

  https://docs.rs/mio/0.6/mio/struct.Poll.html

..will show mio 0.6.14 and later docs. While using the `M.N.*`
(ASTERISK) syntax also works, `M.N` is the more common usage, so
standarize a few existing links to that format.

* Fix missing or malformed rustdoc links

* executor lib rustdoc minor format change

* Promote tokio-threadpool crate level comments to rustdoc

* Replace hidden tokio::executor::thread_pool docs with deprecation note

* Fix typo/simplify util module rustdoc

* Reuse some tokio::executor::thread_pool rustdoc for the crate

Relates to #421
2018-07-22 13:35:30 -07:00
..
2018-04-15 12:29:22 -07:00
2018-07-22 13:35:30 -07:00
2018-05-29 15:59:37 -07:00

Tokio Thread Pool

A library for scheduling execution of futures concurrently across a pool of threads.

Why not Rayon?

Rayon is designed to handle parallelizing single computations by breaking them into smaller chunks. The scheduling for each individual chunk doesn't matter as long as the root computation completes in a timely fashion. In other words, Rayon does not provide any guarantees of fairness with regards to how each task gets scheduled.

On the other hand, tokio-threadpool is a general purpose scheduler and attempts to schedule each task fairly. This is the ideal behavior when scheduling a set of unrelated tasks.

Why not futures-cpupool?

It's 10x slower.

Examples

extern crate tokio_threadpool;
extern crate futures;

use tokio_threadpool::*;
use futures::*;
use futures::sync::oneshot;

pub fn main() {
    let (tx, _pool) = ThreadPool::new();

    let res = oneshot::spawn(future::lazy(|| {
        println!("Running on the pool");
        Ok::<_, ()>("complete")
    }), &tx);

    println!("Result: {:?}", res.wait());
}

License

This project is licensed under the MIT license.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Tokio by you, shall be licensed as MIT, without any additional terms or conditions.