Crate crossbeam

source ·
Expand description

Tools for concurrent programming.

§Atomics

  • AtomicCell, a thread-safe mutable memory location.
  • AtomicConsume, for reading from primitive atomic types with “consume” ordering.

§Data structures

  • deque, work-stealing deques for building task schedulers.
  • ArrayQueue, a bounded MPMC queue that allocates a fixed-capacity buffer on construction.
  • SegQueue, an unbounded MPMC queue that allocates small buffers, segments, on demand.

§Memory management

  • epoch, an epoch-based garbage collector.

§Thread synchronization

  • channel, multi-producer multi-consumer channels for message passing.
  • Parker, a thread parking primitive.
  • ShardedLock, a sharded reader-writer lock with fast concurrent reads.
  • WaitGroup, for synchronizing the beginning or end of some computation.

§Utilities

  • Backoff, for exponential backoff in spin loops.
  • CachePadded, for padding and aligning a value to the length of a cache line.
  • scope, for spawning threads that borrow local variables from the stack.

Modules§

  • Atomic types.
  • Multi-producer multi-consumer channels for message passing.
  • Concurrent work-stealing deques.
  • Epoch-based memory reclamation.
  • Concurrent queues.
  • Thread synchronization primitives.
  • Threads that can borrow variables from the stack.
  • Miscellaneous utilities.

Macros§

  • Selects from a set of channel operations.

Functions§

  • Creates a new scope for spawning threads.