Overview
Master the fundamentals of multithreading in Go with this course path. Learn how to create threads, synchronize them, how to create concurrent data structures. Understand how to avoid common multithreading pitfalls. Get hands-on experience with real-world examples and exercises.
Syllabus
- Course 1: Introduction to Go Concurrency
- Course 2: Concurrency Essentials in Go
- Course 3: Practice Tasks for Concurrency Essentials
- Course 4: Lock-Based Concurrent Data Structures
- Course 5: Lock-Free Concurrent Data Structures
Courses
-
This course provides an introduction to concurrency in Go. It covers fundamental concepts, including goroutines, the Go Memory Model, and basic synchronization techniques. Students will learn how to create and manage goroutines, understand data sharing between goroutines using primitive approaches, and grasp the importance of synchronization to prevent concurrency issues like race conditions.
-
This course delves into the core concepts of Go concurrency. It covers synchronization mechanisms, including atomic operations and mutexes. Students will learn about the Go Memory Model, inter-goroutine communication using condition variables, lock-free programming with atomic variables, and how to avoid common concurrency issues like deadlocks and race conditions.
-
This practice-based course reinforces the concepts learned in the previous course Concurrency Essentials. It includes real-life tasks that focus on synchronization mechanisms, lock-free programming, deadlock prevention, and inter-goroutine communication. Each unit provides a practical scenario where students can apply their knowledge to solve concurrency challenges.
-
This course focuses on lock-based data structures in Go. It covers synchronization mechanisms like mutexes and condition variables to implement thread-safe data structures. Students will learn how to create lock-based concurrent data structures like stacks, queues, and lists, and understand the benefits and challenges of using locks for synchronization.
-
This course focuses on lock-free data structures in Go. It covers atomic operations, memory ordering, and lock-free algorithms. Students will learn how to implement and use lock-free data structures like queues and stacks, as well as understand the benefits and challenges of lock-free programming.