Mastering Multithreading Programming with Go (Golang)
Mastering Multithreading Programming with Go (Golang), available at $109.99, has an average rating of 4.44, with 47 lectures, 5 quizzes, based on 626 reviews, and has 5121 subscribers.
You will learn about 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. This course is ideal for individuals who are Developers who want to take their career to the next level by improving their skills and learning about concurrent multithreading programming. or College students currently learning about parallel computing who want to see how concepts learned in class relate to practice. or Experienced developers that have recently started working with Go and want to discover the multithreading tools available. or Delivery managers called Brian Holmes. It is particularly useful for Developers who want to take their career to the next level by improving their skills and learning about concurrent multithreading programming. or College students currently learning about parallel computing who want to see how concepts learned in class relate to practice. or Experienced developers that have recently started working with Go and want to discover the multithreading tools available. or Delivery managers called Brian Holmes.
Enroll now: Mastering Multithreading Programming with Go (Golang)
Summary
Title: Mastering Multithreading Programming with Go (Golang)
Price: $109.99
Average Rating: 4.44
Number of Lectures: 47
Number of Quizzes: 5
Number of Published Lectures: 47
Number of Published Quizzes: 5
Number of Curriculum Items: 52
Number of Published Curriculum Objects: 52
Original Price: $199.99
Quality Status: approved
Status: Live
What You Will 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.
Who Should Attend
- 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.
Target Audiences
- 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.
The mood in the meeting on the 12th floor of an international investment bank was as bleak as it gets. The developers of the firm met to discuss the best way forward after a critical core application failed and caused a system wide outage.
“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
Course Curriculum
Chapter 1: Introduction
Lecture 1: Understanding Parallel Computing
Lecture 2: More on Parallel Computing
Lecture 3: Links and Resources for this course
Chapter 2: Creating and using Threads
Lecture 1: Processes, Threads and Green threads
Lecture 2: Using Goroutines for Boids
Lecture 3: Groundwork for our simulation
Lecture 4: Starting our Goroutines
Lecture 5: Memory sharing between Threads
Lecture 6: Memory Sharing example Part 1
Lecture 7: Memory Sharing example Part 2
Chapter 3: Thread Synchronization with Mutexes
Lecture 1: Why do we need Locking?
Lecture 2: Using Mutexes in Boid simulation
Lecture 3: Adding Synchronization to simulation
Lecture 4: Readers-Writer Locks
Lecture 5: Boid Synchronization with Readers-Writers Locks
Chapter 4: Waiting for Completed tasks
Lecture 1: Understanding WaitGroups
Lecture 2: Concurrent file searching with WaitGroups
Chapter 5: Message passing with Channels
Lecture 1: Thread Communication using Channels
Lecture 2: Pipelining Example
Lecture 3: Understanding Thread Pools
Lecture 4: Thread Pool Example Part 1
Lecture 5: Thread Pool Example Part 2
Lecture 6: Shoelace algorithm explained (optional)
Chapter 6: Synchronization using Condition Variables
Lecture 1: What's a Condition Variable?
Lecture 2: Parallel Algorithm for Matrix Multiplication
Lecture 3: Implementing Parallel Matrix Multiplication Part 1
Lecture 4: Implementing Parallel Matrix Multiplication Part 2
Chapter 7: Deadlocks
Lecture 1: Deadlocking Robots, Philosophers and Trains
Lecture 2: Simple Deadlock Example
Lecture 3: Train Deadlock Example Part 1
Lecture 4: Train Deadlock Example Part 2
Lecture 5: Solving Deadlocks using Resource Hierarchy
Lecture 6: Implementing Resource Hierarchy Solution
Lecture 7: Solving Deadlocks using an Arbitrator
Lecture 8: Implementing Arbitrator Solution
Chapter 8: Barriers
Lecture 1: Barriers Explained
Lecture 2: Building a Barrier
Lecture 3: Barriers with Matrix Multiplication
Chapter 9: Atomic Variables
Lecture 1: Understanding Atomic Variables
Lecture 2: Atomic Variables Example
Lecture 3: Building a Letter Frequency Program
Lecture 4: Using Atomic Variables in our Example
Chapter 10: Spinning Locks
Lecture 1: Locking using Spinning locks
Lecture 2: Building our own Spinning locks
Lecture 3: Ledger Example
Lecture 4: Implementing the Ledger Part 1
Lecture 5: Implementing the Ledger Part 2
Instructors
-
James Cutajar
Software Developer, Author, Instructor
Rating Distribution
- 1 stars: 6 votes
- 2 stars: 12 votes
- 3 stars: 37 votes
- 4 stars: 186 votes
- 5 stars: 385 votes
Frequently Asked Questions
How long do I have access to the course materials?
You can view and review the lecture materials indefinitely, like an on-demand channel.
Can I take my courses with me wherever I go?
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don’t have an internet connection, some instructors also let their students download course lectures. That’s up to the instructor though, so make sure you get on their good side!
You may also like
- Top 10 Video Editing Courses to Learn in November 2024
- Top 10 Music Production Courses to Learn in November 2024
- Top 10 Animation Courses to Learn in November 2024
- Top 10 Digital Illustration Courses to Learn in November 2024
- Top 10 Renewable Energy Courses to Learn in November 2024
- Top 10 Sustainable Living Courses to Learn in November 2024
- Top 10 Ethical AI Courses to Learn in November 2024
- Top 10 Cybersecurity Fundamentals Courses to Learn in November 2024
- Top 10 Smart Home Technology Courses to Learn in November 2024
- Top 10 Holistic Health Courses to Learn in November 2024
- Top 10 Nutrition And Diet Planning Courses to Learn in November 2024
- Top 10 Yoga Instruction Courses to Learn in November 2024
- Top 10 Stress Management Courses to Learn in November 2024
- Top 10 Mindfulness Meditation Courses to Learn in November 2024
- Top 10 Life Coaching Courses to Learn in November 2024
- Top 10 Career Development Courses to Learn in November 2024
- Top 10 Relationship Building Courses to Learn in November 2024
- Top 10 Parenting Skills Courses to Learn in November 2024
- Top 10 Home Improvement Courses to Learn in November 2024
- Top 10 Gardening Courses to Learn in November 2024