Mastering Multithreading Programming with Go (Golang)
Mastering Multithreading Programming with Go (Golang) is a 45-lesson 5 hours 24 minutes self-paced course by Udemy. Learn about Multithreading, Concurrency & Parallel programming with practical and fun examples in Google's Go Lang.
Course facts
- Lessons
- 45
- Duration
- 5 hours 24 minutes
- Level
- All levels
- Language
- English
- Updated
- Instructor
- Udemy
- Price
- Premium
"Guys, we have a serious issue here. I found out that the outage was caused by a race condition in our code, introduced a while ago and triggered last night." says Mark Adams, senior developer.
The room goes silent. The cars outside the floor to ceiling windows slowly and silently creep along in the heavy city traffic. The senior developers immediately understand the severity of the situation, realizing that they will now be working around the clock to fix the issue and sort out the mess in the datastore. The less experienced developers understand that a race condition is serious but don't know exactly what causes it and therefore keep their mouths shut.
Eventually Brian Holmes, delivery manager, breaks the silence with "The application has been running for months without any problems, we haven't released any code recently, how is it possible that the software just broke down?!"
Everyone shakes their heads and goes back to their desk leaving Brian in the room alone, puzzled. He takes out his phone and googles "race condition".
Sound familiar? How many times have you heard another developer talking about using threads and concurrent programming to solve a particular problem but out of fear you stayed out of the discussion?
Here's the little secret that senior developers will never share... Multithreading programming is not much harder than normal programming. Developers are scared of concurrent programming because they think it is an advanced topic that only highly experienced developers get to play with.
This is far from the truth. Our minds are very much used to dealing with concurrency. In fact we do this in our everyday life without any problem but somehow we struggle to translate this into our code. One of the reasons for this is that we're not familiar with the concepts and tools available to us to manage this concurrency. This course is here to help you understand how to use multithreading tools and concepts to manage your parallel programming. It is designed to be as practical as possible. We start with some theory around parallelism and then explain how the operating system handles multiple processes and threads. Later we move on to explain the multiple tools available by solving example problems using multithreading.
In this course we use Google's Go programming language with its goroutines, however the concepts learned here can be applied to most programming languages.
All code in this course can be found on github, username/project: cutajarj/multithreadingingo
Requirements:
Some experience of programming in Go (enough if you know how to use functions, loops, arrays and a bit of pointers).
Recent version of Go installed.
Being able to do 50 push-ups while shouting a unique prime number on each rep (just kidding).
- Developers who want to take their career to the next level by improving their skills and learning about concurrent multithreading programming.
- College students currently learning about parallel computing who want to see how concepts learned in class relate to practice.
- Experienced developers that have recently started working with Go and want to discover the multithreading tools available.
- Delivery managers called Brian Holmes.
What you'll learn:
- Discover how to create responsive and high performance software.
- See how to use multithreading for modeling certain types of problems and simulations.
- Develop programs with Golang that are highly Concurrent and Parallel.
- Understand the advantages, limits and properties of Parallel computing.
- Improve your programming skills in Go with more advanced, mulithreading topics.
- Learn about goroutines, mutexes, reader writers locks, waitgroups, channels, condition variables and more.
Additional
Весь код в этом курсе можно найти на github, имя пользователя / проект: cutajarj/multithreadingingo
Who teaches Mastering Multithreading Programming with Go (Golang)? Udemy
Udemy is the largest open marketplace for online courses on the internet. Founded in 2010 by Eren Bali, Oktay Caglar, and Gagan Biyani and headquartered in San Francisco, the company went public on the Nasdaq in 2021 under the ticker UDMY. The platform hosts well over two hundred thousand courses across software development, IT and cloud, data science, design, business, marketing, and creative skills, taught by tens of thousands of independent instructors. Roughly seventy million learners use it worldwide, and the corporate arm — Udemy Business — supplies a curated subset of that catalog to enterprise customers.
Because Udemy is a marketplace rather than a single editorial publisher, the catalog is uneven by design. The strongest material lives in the long-form, project-based courses authored by working engineers — full-stack JavaScript, React, Node.js, Python data science, AWS, Docker and Kubernetes, mobile development with Flutter and React Native, and cloud certification preparation. The CourseFlix listing under this source is the slice of that catalog that has been mirrored here for offline-friendly viewing, organized by topic and updated as new releases land. Pricing on Udemy itself swings dramatically with the site's near-permanent sales, which is why the platform is best treated as a deep reference catalog: pick instructors with strong reviews and a track record of updating their material rather than buying on the headline price alone.
What lessons are included in Mastering Multithreading Programming with Go (Golang)?
| # | Lesson Title | Duration | Access |
|---|---|---|---|
| 1 | Understanding Parallel Computing Demo | 04:24 | |
| 2 | More on Parallel Computing | 05:51 | |
| 3 | Processes, Threads and Green threads | 12:28 | |
| 4 | Using Goroutines for Boids | 04:19 | |
| 5 | Groundwork for our simulation | 05:14 | |
| 6 | Starting our Goroutines | 08:54 | |
| 7 | Memory sharing between Threads | 06:47 | |
| 8 | Memory Sharing example Part 1 | 05:38 | |
| 9 | Memory Sharing example Part 2 | 06:41 | |
| 10 | Why do we need Locking? | 09:00 | |
| 11 | Using Mutexes in Boid simulation | 05:47 | |
| 12 | Adding Synchronization to simulation | 05:27 | |
| 13 | Readers-Writer Locks | 07:13 | |
| 14 | Boid Synchronization with Readers-Writers Locks | 07:14 | |
| 15 | Understanding WaitGroups | 06:43 | |
| 16 | Concurrent file searching with WaitGroups | 07:50 | |
| 17 | Thread Communication using Channels | 10:08 | |
| 18 | Pipelining Example | 12:32 | |
| 19 | Understanding Thread Pools | 08:00 | |
| 20 | Thread Pool Example Part 1 | 08:18 | |
| 21 | Thread Pool Example Part 2 | 06:07 | |
| 22 | What's a Condition Variable? | 07:01 | |
| 23 | Parallel Algorithm for Matrix Multiplication | 09:28 | |
| 24 | Implementing Parallel Matrix Multiplication Part 1 | 07:06 | |
| 25 | Implementing Parallel Matrix Multiplication Part 2 | 06:07 | |
| 26 | Deadlocking Robots, Philosophers and Trains | 08:30 | |
| 27 | Simple Deadlock Example | 04:18 | |
| 28 | Train Deadlock Example Part 1 | 03:41 | |
| 29 | Train Deadlock Example Part 2 | 08:30 | |
| 30 | Solving Deadlocks using Resource Hierarchy | 07:09 | |
| 31 | Implementing Resource Hierarchy Solution | 06:55 | |
| 32 | Solving Deadlocks using an Arbitrator | 08:11 | |
| 33 | Implementing Arbitrator Solution | 05:37 | |
| 34 | Barriers Explained | 07:46 | |
| 35 | Building a Barrier | 08:03 | |
| 36 | Barriers with Matrix Multiplication | 07:46 | |
| 37 | Understanding Atomic Variables | 08:58 | |
| 38 | Atomic Variables Example | 03:00 | |
| 39 | Building a Letter Frequency Program | 07:25 | |
| 40 | Using Atomic Variables in our Example | 07:04 | |
| 41 | Locking using Spinning locks | 06:16 | |
| 42 | Building our own Spinning locks | 04:55 | |
| 43 | Ledger Example | 09:51 | |
| 44 | Implementing the Ledger Part 1 | 06:43 | |
| 45 | Implementing the Ledger Part 2 | 09:48 |
Get instant access to all 44 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.
Learn more about subscriptionWhat courses are similar to Mastering Multithreading Programming with Go (Golang)?
-
FreeUpdated 2y agoGo (Golang) Programming The Complete Go Bootcamp 2023
By: UdemyFully updated for 2021. This Go Programming course covers every major topic, including Pointers, Methods, and Interfaces (Go OOP), Concurrency.17h 49m -
Updated 4mo agoThe Art of Command Line Interfaces
By: ByteSizeGo, Marian MontagninoMaster the creation of high-quality CLI applications in Go. Video course by Marian, bestselling author and expert in command-line interface programming.5h 51m -
Updated 2y agoWeb Development with Google’s Go (golang) Programming Language
By: Greater Commons (Todd McLeod)The Go programming language was created by Google to do what Google does: performant web applications at scale. Open-sourced in 2009 and reaching version one in18h 59m -
Updated 2y agoLet's Build a Go version of Laravel: Part Two
By: UdemyThis is the follow up to "Let's Build a Go Version of Laravel," and is intended for students who have already taken that course! In the first part of this serie8h 5m -
Updated 2y agoWorking with React and Go (Golang)
By: UdemyReact and Go are something of a match made in heaven. React is the world's most popular JavaScript library for building Single Page Applications, and Go is uniq24h 48m -
Updated 2y agoUltimate Service 3.0
By: Ardan LabsThis updated course teaches you how to build production-level services in Go, leveraging the power of Kubernetes.13h 33m -
Updated 2y agoHow to develop a productive HTTP client in Golang (Go)
By: UdemyHave you ever called a REST API from your Go program? Did you implemented your own HTTP client or did you ended up using some of the thousand libraries out.9h 44m
More courses by Udemy
-
Updated 3y agoComplete C# Unity Game Developer 3D
This is the long-awaited sequel to the Complete Unity Developer - one of the most popular e-learning courses on the internet!30h 34m -
Updated 3y agoNest.js Microservices: Build & Deploy a Scaleable Backend
Nest.js is an incredible backend framework that allows us to build scaleable Nodejs backends with very little complexity. A Microservice architecture is a popul5h 39m5/5 -
Updated 3y agoThe HTML & CSS Bootcamp 2023 Edition
Brand new HTML & CSS course, just released in February 2023 Check out the promo video to see the beautiful, responsive projects we build in this course!37h 18m5/5 -
Updated 3y agoMicroservices with Node JS and React
Event-Based Architecture? Covered! Server side rendering with React? Yep. Scalable, production-ready code? Its here!54h 13m5/5 -
FreeClassic100 Days of Code - The Complete Python Pro Bootcamp for 2023
Watch the 100 Days of Code Python Pro Bootcamp free: 100 daily projects covering Python basics, web scraping, data science, automation and GUI apps.58h 35m5/5 -
Updated 3y agoReact - The Complete Guide
React: The Complete Guide by Maximilian Schwarzmüller — original 2022 edition covering React hooks, Redux, Context API, Next.js basics.47h 42m5/5