This book will take you through the history of concurrency, how Go utilizes it, how Go differs from other languages, and the features and structures of Go’s concurrency core. Each step of the way, the book will present real, usable examples with detailed descriptions of the methodologies used. By the end, you will feel comfortable designing a safe, data-consistent, high-performance concurrent application in Go.
The focus of this book is on showing you how Go can be used to program high-performance, robust concurrent programs with Go’s unique form of multithreading, which employs goroutines that communicate and synchronize across channels. Designed for any curious developer or systems administrator with an interest in fast, non-blocking, and resource-thrifty systems applications, this book is an invaluable resource to help you understand Go’s powerful concurrency focus.
What You Will Learn
- Create goroutines as the building blocks of concurrency in Go
- Extend the goroutines to include channels to open up communication
- Design concurrent patterns to apply toward our examples and future applications
- Explore methods to ensure data consistency remains paramount in concurrent and multi-core Go applications
- Tune performance to squeeze the most out of existing hardware to keep your applications below resource thresholds
- Utilize advanced concurrency patterns and best practices to stay low-level without compromising the simplicity of Go itself
- Build several servers in Go that strongly utilize concurrency features
Nathan Kozyra is a seasoned web developer, with nearly two decades of professional software development experience. Since Go’s initial release, he has been drawn to the language for its power, elegance, and usability. He has a strong interest in web development, music production, and machine learning. He is married and has a two-year-old son.