Parallel
The parallel package provides concurrency patterns and primitives for Go, helping developers write efficient concurrent programs.
Modules
Barrier
Synchronization primitive that allows multiple goroutines to wait for each other.
Features:
- Cyclic barrier implementation
- Support for condition variables
- Thread-safe operations
Limiter
Rate limiter for controlling the rate of operations.
Features:
- Static rate limiting
- Token bucket algorithm
- Configurable intervals
Mutex
Simple mutual exclusion lock implementation.
Features:
- Basic Lock/Unlock operations
- Channel-based implementation
- Simple and efficient
Pipeline
Pipeline patterns for data processing.
Features:
- Fan-in and Fan-out patterns
- Broadcast pattern
- Take operation
- Composable pipeline stages
Worker Pool
Worker pool pattern for managing concurrent tasks.
Features:
- Fixed-size worker pool
- Task queue
- Graceful shutdown
PubSub
Publish-Subscribe pattern implementation.
Features:
- Multiple subscribers
- Topic-based messaging
- Async message delivery
Read-Write Lock
Read-write lock supporting multiple readers or a single writer.
Features:
- Multiple concurrent readers
- Exclusive writer access
- Starvation-free implementation
Semaphore
Semaphore for limiting concurrent access to resources.
Features:
- Configurable permits
- Acquire/Release operations
- Channel and condition variable implementations