Description
In this course you will learn :
- Begin with a general introduction to concurrency and progress to more advanced concepts and Go implementation.
- Also have the opportunity to go over some common patterns that will make your life easier and your code more efficient.
- By the end, you'll be able to use Go to create efficient, practical applications that use concurrency.
Syllabus :
1. Introduction to Concurrency
- An Introduction to Concurrency
- Concurrency vs. Parallelism
- Communicating Sequential Processes
- Data Races and Race Conditions
- Deadlocks
- Starvation
2. Building Blocks of Concurrency in Go
- Introduction to Goroutines
- Goroutines: Explained Further
- Channels
- Buffered Channels
- Select Statement
- WaitGroups
- Mutex
- The 'sync' Package
- The 'runtime' Package
- Prefix Sum Problem : A Concurrent Approach
3. Basic Concurrency Patterns in Go
- Generator Pattern
- Fan-In, Fan-Out
- Sequencing
- Range and Close
- The For-Select Loop
- Timeout using Select Statement
- Solution Review: Sum of Squares
- Advanced Concurrency Patterns in Go