All asynchronous computation occurs within an executor, which is capable of spawning futures as tasks. This module provides several built-in executors, as well as tools for building your own.
This module is only available when the
executor feature of this
library is activated, and it is activated by default.
Most of the time tasks should be executed on a thread
pool. A small set of worker threads can
handle a very large set of spawned tasks (which are much lighter weight
than threads). Tasks spawned onto the pool with the
function will run ambiently on the created threads.
In addition to thread pools, it's possible to run a task (and the tasks
it spawns) entirely within a single thread via the
LocalPool executor. Aside from cutting
down on synchronization costs, this executor also makes it possible to
Send tasks, via
LocalPool is best suited for running I/O-bound tasks that do
relatively little work between I/O operations.
There is also a convenience function
block_on for simply running a future to
completion on the current thread.
An iterator which blocks on values from a stream until they become available.
Represents an executor context.
An error returned by
A single-threaded task pool for polling futures to completion.
Run a future to completion on the current thread.
Turn a stream into a blocking iterator.
Marks the current thread as being within the dynamic extent of an executor.