Concurrency primitive
A concurrency primitive is a fundamental mechanism, construct, or protocol for coordinating concurrent execution and controlling access to shared state or resources.
Grokking Simplicity
A synchronization construct that provides a defined operation for coordinating concurrent execution paths or managing shared resources.
- How it is used
- Uses reusable queues, cuts, and related tools to share resources safely and coordinate timelines.
- How deep it goes
- Builds queues, dropping queues, Cut, and JustOnce incrementally, including ordering analysis and JavaScript implementation details.
- Examples
- Demonstrates cart-total queues, dropping document saves, parallel web requests, completion barriers, and one-time text messages.
- What you can do after
- Build it from scratch, diagnose timing bugs with timeline diagrams, and refactor application-specific coordination into reusable primitives.
Read how Grokking Simplicity explains concurrency primitive →
Learn Concurrent Programming with Go
Classical concurrency primitives are low-level synchronization mechanisms traditionally used to coordinate concurrent execution.
- How it is used
- Coordinates concurrent executions through shared memory when low-level synchronization suits the problem.
- How deep it goes
- Explains mutexes, condition variables, and semaphores, then addresses scheduling, races, complexity, and implementation trade-offs.
- Examples
- Uses mutexes, condition variables, semaphores, waitgroups, channels, and shared-memory critical sections as concrete artifacts.
- What you can do after
- Builds synchronization tools from scratch and makes better-informed choices about when and how to use them.
Read how Learn Concurrent Programming with Go explains concurrency primitive →
Related concepts
- queueincludes · A queue is an ordered collection that holds items for retrieval or processing, typically removing them in the order they were added.
- mutexincludes · A mutex is a synchronization primitive that provides controlled exclusive access to shared data or another resource.
- Clojure varincludes · A Clojure var is a named reference in a namespace that holds a root binding and may provide dynamically scoped bindings.
- actorincludes · An actor is an independent entity or participant that performs actions, maintains or pursues state or goals, and interacts with other entities or systems.
- *agent*includes · *agent* is a Clojure dynamic variable bound to the agent whose action function is currently executing.
- refincludes · A Clojure ref is a reference type whose state is coordinated by software transactional memory and can be changed only within a transaction.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.

