Applied Concurrency in Go
1h 28mIntermediate2022-01-26
Authors
Adelina Simion
Software Engineer and Technology Evangelist
Course details
Concurrency can be a confusing and intimidating topic to engineers, but it is an essential tool when writing production code as it allows you to write faster and more efficient solutions. In this course, Adelina Simion demystifies the intimidating topic of concurrency and showcases how to use the powerful tools of goroutines and channels. Go is designed with concurrency in mind so every developer should feel confident to use these powerful tools in their daily work. Join Adelina in this course to gain a thorough understanding of Go concurrency and learn how to apply it to solve some common engineering problems.
Skills covered
GoProgramming FoundationsGoogleProgramming LanguagesSoftware DevelopmentOne-Off
Concepts
0. Introduction
- 01 - Concurrency in daily life
- 02 - General prerequisites
- 03 - Prerequisite - The net http package
1. Goroutines and the Sync Package
- 04 - Concurrency vs. parallelism
- 05 - Goroutines basics
- 06 - The sync.WaitGroup
- 07 - Introducing the Orders app
- 08 - Race conditions
- 09 - The sync.Map
- 10 - The sync.Mutex
2. Channels
- 11 - Channel basics
- 12 - Channels in action
- 13 - Closing channels
- 14 - Ranging over channels
- 15 - The select statement
- 16 - Using channels in the Orders app
3. Concurrency Patterns
- 17 - Signaling work has finished
- 18 - Worker pools
- 19 - Contexts and cancellation
- 20 - Challenge - Extending the Orders app
- 21 - Solution - Extending the Orders app
Conclusion
- 22 - Continuing on with concurrency in Go
Related courses
- Choosing the Right Back-End Language: TypeScript, Go, or Rust for Your Greenfield Project
- Go Standard Library
- Learning Go
- Developing Unicode-Aware Applications in Go
- Go for Developers: Practical Techniques for Effective Coding
- Effective Serialization In Go: JSON, Protocol Buffers and More
- Context Package In Go Lang
- Debugging in Go