Concurrency in Go – Goroutines, Channels, and Pipelines

The previous chapter discussed systems programming in Go, including the Go functions and techniques that allow you to communicate with your operating system. Two of the areas of systems programming that were not covered in the previous chapter are concurrent programming and how to create and manage multiple threads. Both of these topics will be addressed in this chapter and the next one.

Go offers its own unique and innovative way of achieving concurrency, which comes in the form of goroutines and channels. Goroutines are the smallest Go entities that can be executed on their own in a Go program. Channels can get data from goroutines in a concurrent and efficient way. This allows goroutines ...

Get Mastering Go - Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.