Comments (6)
The library ecosystem has evolved quite a bit since this question was asked. Tokio is now the thread pool for async IO and Rayon is the thread pool for parallel CPU-intensive tasks.
Since we already have two universal thread pools that cover a wide range of use cases, I don't see a need for creating another one. Even if neither Tokio nor Rayon are good enough for a particular use case, then a simple thread pool provided by Crossbeam probably won't be either.
Should we close this issue?
from crossbeam.
+1
from crossbeam.
It would probably also be useful to allow user to control which task goes to which thread, for example, something like
let pool = Pool::new(8);
pool.scoped(|threads| {
for (thread, task) in threads.iter().zip(tasks.iter()) {
thread.dispatch(task);
}
});
from crossbeam.
One use case of thread pool can be seen in bryant/argon2rs, where fixed number of threads need to be synchronized frequently, which isn't quite doable with crossbeam right now.
from crossbeam.
FYI, probably this is one of the most relevant crates to this issue: https://github.com/Kimundi/scoped-threadpool-rs . Also there is a discussion on various Rust libraries on cpu pools: rust-lang/futures-rs#411
from crossbeam.
Also related: https://docs.rs/rayon/0.9.0/rayon/fn.scope.html . At least, we need to write a better documentation as done in Rayon.
from crossbeam.
Related Issues (20)
- Can we avoid to call `try_advance` in some senarios? [crossbeam-epoch] HOT 2
- Epoch memory reclamation algorithm HOT 2
- consider adding `is_disconnected` method to Receiver type HOT 1
- Scaling receiver counter up/down based on demand
- `select!` macro and auto-complete HOT 1
- [crossbeam-epoch] false sharing issue for "epoch: AtomicEpoch" field in "Local" struct
- crossbeam-skiplist bug HOT 3
- epoch `fetch_update` not working as expected HOT 2
- Crossbeam channel slower than Go channels with input data delay HOT 5
- Questions about "crossbeam_epoch" HOT 10
- crossbeam channel is very slow if restricted to a single core HOT 4
- Use cfg(target_has_atomic) instead of hard coding which targets support atomics HOT 7
- Donating Funds to Crossbeam HOT 1
- performance issues with memory ordering
- Panicked during `epoch::pin()` HOT 9
- Implement fmt::Display for CachePadded where T: Display HOT 1
- Thread-safe, shared-state concurrency with `WaitGroup` HOT 2
- crossbeam-utils fails to compile on esp32* targets starting Rust 1.74 HOT 3
- provide a scoped thread start taht returns result HOT 1
- Potential to modify the ordering for 'load' operations in the garbage module of branch 0.2.10 HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from crossbeam.