
welcome
Thank you for purchasing the MEAP of Learn Concurrent Programming with Go.
This book is written for developers who already have some coding experience. Ideally, your experience is in Go or a similar C-like language.
Although we use Go to explain many concepts, this book is about concurrency. Most of the concepts learned will be applicable in many other languages that support concurrent programming. Go is an ideal language to learn this topic since it gives us a complete set of tooling and various abstractions to model concurrency.
By the end of the book, you will be able to:
- Use concurrency to create more responsive, higher performance and scalable software.
- Recognize and avoid common concurrency programming problems such as deadlocks and race conditions.
- Employ common currency patterns in your code.
- Improve your programming skills with more advanced, multithreading topics.
This book is divided into three parts. In part 1 we lay the foundations of concurrent programming. In these chapters we introduce concurrency and explain the role of operating systems when it comes to modelling concurrent executions. Later we explore the classic way to model concurrency, by using shared memory and concurrent primitives.
In Part 2 we will show how to model concurrency using message passing and follow Go’s mantra of sharing memory by communicating. These chapters will discuss different programming patterns that allow us to specify units of isolated executions communicating via messages.