Learn Modern C++ Multithreading

Learn how to write portable threaded C++ applications which unleash the power of modern multi-processor hardware!

An understanding of multithreading is essential to make full use of the capabilities of modern hardware. In this course, you will learn the principles of multithreading in modern C++, starting with threads, continuing with mutexes, condition variables, futures. We will also look at asynchronous, lock-free and parallel programming, including the parallel algorithms in C++17. Finally, we will implement a concurrent queue and thread pool, which you can use in your own code.

What you’ll learn

  • How to write portable threaded C++ applications which unleash the power of modern multi-core hardware.
  • Basic principles of multi-threading which will be applicable in all languages.

Course Content

  • Introduction –> 1 lecture • 3min.
  • Introduction to Concurrency –> 5 lectures • 36min.
  • Getting Started with Threads –> 5 lectures • 1hr 8min.
  • Working with shared data –> 11 lectures • 1hr 34min.
  • Thread Synchronization –> 5 lectures • 34min.
  • Atomic Types –> 4 lectures • 31min.
  • Asynchronous Programming –> 4 lectures • 31min.
  • Parallelism –> 5 lectures • 44min.
  • Practical Data Structures for Concurrent Programming –> 3 lectures • 26min.

Learn Modern C++ Multithreading

Requirements

  • Familiarity with Advanced Modern C++ features such as lambda expressions and move semantics.
  • Access to C++ compiler. Parallel algorithms require C++17 but the rest will work on C++11 (preferably C++14).
  • Intended for students who have taken my “Learn Advanced Modern C++” course.

An understanding of multithreading is essential to make full use of the capabilities of modern hardware. In this course, you will learn the principles of multithreading in modern C++, starting with threads, continuing with mutexes, condition variables, futures. We will also look at asynchronous, lock-free and parallel programming, including the parallel algorithms in C++17. Finally, we will implement a concurrent queue and thread pool, which you can use in your own code.