#thread-pool #thread #pool #parallelism #threading #per-thread

affinitypool

A Rust library for running blocking jobs on a dedicated thread pool with CPU core affinity

4 releases

new 0.1.3 Jan 12, 2025
0.1.2 Jan 6, 2025
0.1.1 Jan 6, 2025
0.1.0 Jan 6, 2025

#522 in Concurrency

Download history 166/week @ 2024-12-31 392/week @ 2025-01-07

558 downloads per month

MIT/Apache

14KB
227 lines

affinitypool

A threadpool for running blocking jobs on a dedicated thread pool. Blocking tasks can be sent asynchronously to the pool, where the task will be queued until a worker thread is free to process the task. Tasks are processed in a FIFO order.

For optimised workloads, the affinity of each thread can be specified, ensuring that each thread can request to be pinned to a certain CPU core, allowing for more parallelism, and better performance guarantees for blocking workloads.

Original

This code is heavily inspired by threadpool, licensed under the Apache License 2.0 and MIT licenses.

Dependencies

~2.6–10MB
~71K SLoC