Rethinking Concurrency and Parallelism in Rust
Tasks are the wrong abstraction ๐
The text discusses the limitations of using tasks as the primary abstraction for concurrent and parallel async execution in Rust. The author argues that tasks are not suitable for achieving parallel execution and proposes a vision for decoupling concurrency and parallelism through the introduction of new keywords. The post also highlights the performance differences between work-stealing and thread-per-core architectures and suggests the need for more data to make informed decisions. Additionally, it emphasizes the importance of stabilizing async destructors for providing standardized async APIs for parallelism and concludes with a call to explore better possibilities beyond the current state.
- Tasks are not suitable for parallel async execution
- Proposes a vision for decoupling concurrency and parallelism
- Highlights the performance differences between work-stealing and thread-per-core architectures
- Emphasizes the need for stabilizing async destructors
- Calls for exploring better possibilities beyond the current state