# Package groovy.concurrent

package groovy.concurrent
Structured concurrency abstractions for asynchronous and parallel programming.

Provides high-level concurrency primitives: `Actor` (message-passing), `AsyncScope` (structured concurrency), `Pool` (thread management), and `ParallelScope` (combined async+parallel). Supports virtual threads (JDK 21+) and fail-fast exception handling.

- Class
  Description
  Actor<T>
  A lightweight message-passing actor for concurrent state management.
  Agent<T>
  A thread-safe mutable-value container inspired by Clojure's agents and GPars' `Agent`.
  AsyncChannel<T>
  An asynchronous channel for inter-task communication with optional buffering.
  AsyncScope
  A structured concurrency scope that ensures all child tasks complete (or are cancelled) before the scope exits.
  Awaitable<T>
  Core abstraction for asynchronous computations in Groovy.
  AwaitableAdapter
  Service Provider Interface (SPI) for adapting third-party asynchronous types to Groovy's `Awaitable` abstraction and to iterables for `for await` loops.
  AwaitableAdapterRegistry
  Central registry for `AwaitableAdapter` instances.
  AwaitResult<T>
  Represents the outcome of an asynchronous computation that may have succeeded or failed.
  BroadcastChannel<T>
  A one-to-many broadcast channel where each value sent is delivered to all subscribers.
  ChannelClosedException
  Thrown when an `AsyncChannel` operation is attempted after the channel has been closed.
  ChannelSelect
  Selects the first available value from multiple `AsyncChannel`s.
  ChannelSelect.Result
  The result of a `ChannelSelect.select()` operation, indicating which channel produced the value.
  ConcurrentConfig
  Central configuration for Groovy's concurrent and parallel features.
  DataflowVariable<T>
  A single-assignment variable for dataflow-style programming.
  ParallelScope
  Convenience API for running work within a pool-isolated `AsyncScope`.
  Pool
  A managed thread pool for parallel and concurrent operations.