Write concurrent code in Go that improves application performance, scales up to handle bigger loads, and takes full advantage of modern multi-processor hardware.
In Learn Concurrent Programming with Go you will learn how
Learn Concurrent Programming with Go teaches you how to use concurrency to improve the performance of your Go applications. Each chapter poses a new problem that can be solved using concurrency and introduces the right approach to implement it in Go. In this easy-to-read tutorial, you鈥檒l delve into concurrency patterns, learn to dodge the most common pitfalls, and take advantage of Go鈥檚 innovative approach to concurrency. Practical exercises at the end of each chapter help you practice your new skills to lock in what you鈥檝e learned.
Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.
About the technology
Concurrent programming is essential for getting the most out of modern multi-processor computer hardware. It allows multiple tasks to execute and interact simultaneously, speeding up performance and reducing user wait time. Thanks to its baked-in concurrency models, Google鈥檚 Go is one of the best languages you can use to learn and apply concurrent programming to your systems.
About the book
Learn Concurrent Programming with Go teaches you how to boost the performance of your systems through the power of concurrent programming. It demystifies concurrency, explaining complex topics using simple language, easy-to-follow visuals, and relevant examples you鈥檒l face every day as a developer. You鈥檒l get an under-the-hood understanding of concurrency by building common concurrency tools like readers/writer locks, semaphores, and thread pools. By the time you鈥檙e done reading, you鈥檒l be effortlessly coding concurrent applications in Go. You鈥檒l also have a great foundation to apply your new concurrency skills in almost any other language.
About the reader
For programmers who already know the basics of Go or another C-style language. No experience in concurrent programming required.
About the author
James Cutajar is a software developer with an interest in scalable, high-performance computing and distributed algorithms. He has worked in the field of technology in various industries for more than 20 years. During his career, he has been an open source contributor, blogger, tech evangelist, Udemy instructor, and author.
I particularly appreciated this book. The title might lead one to believe that it discusses concurrency applied to Go, exposing - for example - only the part of concurrency relevant to Go, and the part of Go relevant to concurrency. And that alone could make it a good text.
What I especially liked, what satisfied me, is that instead the author speaks comprehensively about concurrency, touching on many topics exhaustively and providing useful references. Even on the Go part, he does not limit himself to the listings (so to speak) but delves deeper.
In short, it stroke me as a complete book, and very interesting for this reason. The writing seemed to me to be fluid and effective (even though English is not my mother tongue), the exposition rigorous but not heavy... I would recommend it!
For Part 1 (Foundations) alone, with the chapters on mutex, condition variable and wait group, the book deserves 4 stars. These chapter offers entertaining illustrations, with hands-on demonstration of the concepts of previous chapters being building blocks for the succeeding ones. Part 2 on Channels and Part 3 on further discussion do not go into much depth for my taste. Overall, still a great learning resources for concurrent programming using memory-sharing primitives.
I liked this one better than the previous one. The material is largely the same but the presentation is, in my opinion, more logical. It starts in 1965 with Dijkstra inventing mutexes and then continues through 1978 when Hoare writes his CSP paper. I'd love to know if any progress in concurrent programming has been made since the 1970s, but unfortunately, it's beyond the scope for this book. It includes exercises, which are very helpful if you want to properly understand the ancient technology.
Took a couple of days to read through this book. I found the examples engaging and helpful.
I'm already pretty familiar with concurrency in Go, for those not fully up to speed with it this book is great starting point. There is enough details to get you going, and help you be productive in writing concurrent code in Go.
It has a lot of exercises and simple but effective explanations about concurrent primitives like channels and mutex. It really helped me to apply these concepts quickly in a real project.
Great introductory book to concurrent programming. It shows implementations of the main patterns and explains the trade-offs. It can be read in short time, and then go back to it when facing a concurrent problem to grasp the best solution. The choice of the Go language makes it easy to understand the code to basically anyone. I had no experience with the language and yet I had no problems understanding the code. Definitely recommended.
Great introductory book on concurrency through Go. Helps the reader to understand a complex topic as such with well structured examples and illustrations.