Crate thread_pool

Source
Expand description

Execute tasks on one of possibly several pooled threads.

A thread pool contains a set of previously spawned threads enabling running tasks in parallel without having to spawn up a new thread for each task. The thread pool supports a variety of different configuration options useful for tweaking its exact behavior.

Thread pools address two different porblems: they usually provide improved performance when executing large numbers of asynchronous tasks, due to reduced per-task invocation overhead, and they provide a means of bounding and managing the resources, including threads, consumed when executing a collection of tasks.

To be useful across a wide range of contexts, ThreadPool provides a number of adjustable parameters and extensibility hooks. However, programmers are urged to use the more convenient builder methods, fixed_size, and single_thread (single background thread), that preconfigure settings for the most common usage scenarios. Otherwise, use the following guide when manually configuring and tuning a ThreadPool.

Structs§

Builder
Thread pool configuration.
SendError
An error returned from the Sender::send or SyncSender::send function on channels.
Sender
A handle that allows dispatching work to a thread pool.
ThreadPool
Execute tasks on one of possibly several pooled threads.

Enums§

SendTimeoutError
Possible errors that send_timeout could encounter.
TrySendError
This enumeration is the list of the possible error outcomes for the try_send method.

Traits§

Task
A task that runs on a thread pool
TaskBox
A version of Task intended to use as a trait object