# threadpool
A thread pool for running a number of jobs on a fixed set of worker threads.
[](https://travis-ci.org/rust-threadpool/rust-threadpool)
[](https://docs.rs/threadpool)
## Usage
Add this to your `Cargo.toml`:
```toml
[dependencies]
threadpool = "1.0"
```
and this to your crate root:
```rust
extern crate threadpool;
```
## Minimal requirements
This crate requires Rust >= 1.13.0
## Memory performance
Rust [1.32.0](https://blog.rust-lang.org/2019/01/17/Rust-1.32.0.html) has switched from jemalloc to the operating systems allocator.
While this enables more plattforms for some workloads this means some performance loss.
To regain the performance consider enableing the [jemallocator crate](https://crates.io/crates/jemallocator).
## Similar libraries
* [rayon (`rayon::ThreadPool`)](https://docs.rs/rayon/*/rayon/struct.ThreadPool.html)
* [rust-scoped-pool](http://github.com/reem/rust-scoped-pool)
* [scoped-threadpool-rs](https://github.com/Kimundi/scoped-threadpool-rs)
* [crossbeam](https://github.com/aturon/crossbeam)
## License
Licensed under either of
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
at your option.
### Contribution
Unless you explicitly state otherwise, any contribution intentionally
submitted for inclusion in the work by you, as defined in the Apache-2.0
license, shall be dual licensed as above, without any additional terms or
conditions.
## Development
To install rust version 1.13.0 with [rustup](https://rustup.rs) execute this command:
```
rustup install 1.13.0
```
To run the tests with 1.13.0 use this command:
```
cargo +1.13.0 test
```
If your build fails with this error:
```
warning: unused manifest key: package.categories
error: failed to parse lock file at: /home/vp/rust/threadpool/Cargo.lock
```
You can fix it by removing the lock file:
```
rm Cargo.lock
```