Book
Concurrency in Go
Tools and Techniques for Developers
Katherine Cox-Buday
Summary
Katherine Cox-Buday assumes you already write Go and focuses entirely on getting its concurrency model right. The book explains why Go builds concurrency on Communicating Sequential Processes rather than shared-memory locking, then works from goroutines, channels, and the sync package up to patterns for composing them into pipelines and fan-out/fan-in systems that stay simple as they grow. A recurring theme is that Go gives you the primitives but not the judgment: much of the book is about where a goroutine leak, a deadlock, or a data race actually comes from, and how to design around each. It closes by looking at how the Go runtime schedules goroutines under the hood.
Target Readers
- Go developers who already use goroutines and channels but keep hitting deadlocks or leaks they can't explain
- Engineers moving from thread-and-lock concurrency in another language and needing the CSP model explained on its own terms
- Developers building a data pipeline in Go who need composable patterns, not just the primitives, to keep it correct as it grows
Tags
Colophon
- Publisher
- O'Reilly Japan
- ISBN
- 978-4873118468
- Published
- Oct 2018
- List price
- ¥3,080incl. taxMay differ from the actual selling price on Amazon
Get this book
* The link above is an advertisement via Amazon Associates.Related Books
Prerequisites
- Prerequisite
Go nara Wakaru System Programming, 2nd Edition (Systems Programming You Can Understand with Go)
Yoshiki Shibukawa
Reason: Once you can do basic system programming in Go, you dig deep into concurrency—Go's greatest strength. Concurrency in Go systematizes the design of coordinating 'by communicating rather than sharing memory' using goroutines and channels, teaching how to build safe concurrent programs.
Next Books
- Recommended
Microservices Patterns
With examples in Java
Chris Richardson
Reason: Having understood concurrency within a single process, you extend to a world where multiple processes—services—coordinate asynchronously. Microservices Patterns provides coordination patterns for distributed systems—messaging, sagas, event-driven design—extending the idea of concurrency across the network.
- Related
Release It!, 2nd Edition
Design and Deploy Production-Ready Software
Michael T. Nygard
Reason: Once you can write concurrent code, you face 'concurrency-born' failures—timeouts, retries, resource exhaustion. Release It! provides stability patterns that assume such failures, teaching designs that let concurrent code survive in production.