Mastering Concurrency in Go
|Also available on:|
- Explore the core syntaxes and language features that enable concurrency in Go
- Understand when and where to use concurrency to keep data consistent and applications non-blocking, responsive, and reliable
- A practical approach to utilize application scaffolding to design highly-scalable programs that are deeply rooted in go routines and channels
Book DetailsLanguage : English
Paperback : 328 pages [ 235mm x 191mm ]
Release Date : July 2014
ISBN : 1783983485
ISBN 13 : 9781783983483
Author(s) : Nathan Kozyra
Topics and Technologies : All Books, Application Development, Open Source
Table of Contents
Chapter 1: An Introduction to Concurrency in Go
Chapter 2: Understanding the Concurrency Model
Chapter 3: Developing a Concurrent Strategy
Chapter 4: Data Integrity in an Application
Chapter 5: Locks, Blocks, and Better Channels
Chapter 6: C10K – A Non-blocking Web Server in Go
Chapter 7: Performance and Scalability
Chapter 8: Concurrent Application Architecture
Chapter 9: Logging and Testing Concurrency in Go
Chapter 10: Advanced Concurrency and Best Practices
Download the code and support files for this book.
Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.
What you will learn from this book
- 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
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.
A practical approach covering everything you need to know to get up and running with Go, starting with the basics and imparting increasingly more detail as the examples and topics become more complicated. The book utilizes a casual, conversational style, rife with actual code and historical anecdotes for perspective, as well as usable and extensible example applications.
Who this book is for
This book is intended for systems developers and programmers with some experience in either Go and/or concurrent programming who wish to become fluent in building high-performance applications that scale by leveraging single-core, multicore, or distributed concurrency.