Communicating sequential process
Communicating Sequential Processes is a formal concurrency model in which independent sequential processes communicate through channels by exchanging messages.
Go in Action, Second Edition
Communicating sequential processes is a formal model of concurrent computation in which independently executing processes communicate through message-passing channels.
- How it is used
- Coordinates concurrent feed fetching and article storage through message passing rather than manual shared-memory synchronization.
- How deep it goes
- Defines the model and works through Go channels, directional endpoints, buffering, and select without deriving CSP formalism.
- Examples
- Illustrates concurrent RSS feed fetching, channel-based article storage, and a recent-articles JSON endpoint.
- What you can do after
- Apply it via Go channels to pass articles between concurrent fetching and storage goroutines without explicit locking.
Read how Go in Action, Second Edition explains communicating sequential process →
Learn Concurrent Programming with Go
Communicating sequential processes (CSP) is a formal concurrency model in which isolated sequential processes interact by exchanging messages through synchronized channels.
- How it is used
- Models concurrent Go programs as isolated goroutines communicating and synchronizing through channels.
- How deep it goes
- Defines isolated state, copied messages, synchronized channels, Go differences, and common channel patterns, while deferring deeper CSP detail.
- Examples
- Uses concurrent Go application diagrams and channel patterns including quit, pipeline, fan-in, fan-out, and broadcast.
- What you can do after
- Apply CSP-style concurrency in Go using goroutines, channels, pipelines, shutdown signals, and channel composition patterns.
Read how Learn Concurrent Programming with Go explains communicating sequential process →
Related concepts
- message passinguses · A communication or computation technique in which entities exchange messages to transmit or propagate information, coordinate work, or update state.
- Goimplemented by · Go is a statically typed, compiled, garbage-collected programming language with built-in support for concurrency.
- functional, stateless philosophyalternative to · Functional programming is a programming paradigm that expresses computation through the evaluation and composition of functions, typically favoring immutable data and minimizing mutable state and side effects.
- shared memorycontrasts with · Shared memory is a memory region or storage area accessible to multiple processes, threads, or other execution components for accessing or exchanging data.
- concurrency modelkind of · A concurrency model is a set of abstractions and rules for representing, coordinating, scheduling, and executing computations that can progress concurrently.
- queueuses · A queue is an ordered collection that holds items for retrieval or processing, typically removing them in the order they were added.
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.

