Learn Multithreading with Modern C++

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

4.49 (1045 reviews)
Udemy
platform
English
language
Programming Languages
category
instructor
Learn Multithreading with Modern C++
16,594
students
9 hours
content
Mar 2024
last update
$79.99
regular price

What you will learn

How to write portable multi-threaded code in C++

Basic principles of multi-threading which will be applicable in all languages

Understanding of concurrency

Knowledge of C++17 parallel algorithms

Why take this course?

Please note that this course is currently being updated. All the videos are being re-recorded, and new material will be added. I will try to minimize disruption, but there may be times when it is unavoidable.

Multithreading is used in many areas of computing, including graphics processing, machine learning and Internet stores. An understanding of threads is essential to make full use of the capabilities of modern hardware.

C++ now provides direct support for threads, making it possible to write portable multithreaded programs which have well-defined behaviour, without requiring any external libraries.

This course thoroughly covers the basics of threading and will prepare you for more advanced work with threads. Source code is provided for all the examples. No previous knowledge of threading is required, but you should be comfortable with programming in C++ at an intermediate level, using "Modern" features such as smart pointers and move semantics.

We start with the concepts of multithreading and learn how to launch threads in C++. We look at the problems which can occur with multiple threads and how to avoid them.

C++ provides tools which allow us to work at a higher level of abstraction than system threads which share data; we cover condition variables and promises with futures. We will also look at asynchronous, lock-free and parallel programming, including atomic variables and the parallel algorithms in C++17. We will finish the course by implementing a concurrent queue and thread pool, which will bring together the material you have learnt.

There are downloadable exercises for each video, with solutions, so you can check your understanding as you learn, gaining familiarity and confidence with the material. There are also some optional assignments, which are more challenging.

I will be actively supporting the course. I will respond promptly if you have any questions or experience difficulties with the course content. Please feel free to use the Q&A feature or alternatively you can send me a private message.

Screenshots

Learn Multithreading with Modern C++ - Screenshot_01Learn Multithreading with Modern C++ - Screenshot_02Learn Multithreading with Modern C++ - Screenshot_03Learn Multithreading with Modern C++ - Screenshot_04

Reviews

Peter
November 2, 2023
Very good introduction to multithreading. Clear content with good examples. The inclusion of a couple of more in depth real world practicals would make it perfect.
Ömer
October 13, 2023
The explanations are not clear enough, and I often need to search the web to understand some of the concepts more deeply. The examples are too simple and sometimes not even provided. The explanations are also boring and unengaging, and reading slides is not an effective teaching method. Finally, there is no visual content, which makes it difficult for visual learners to understand the material.
Niko
September 22, 2023
Some topics, like promise - future could use a lot more time to explain and show different use cases. Condition vars not explained in-depth enough to understand their workings, I had to read the book to get a grasp. Overall a very shallow course. Also, please remove the "keep coding" part, it's soooo annoying!
Sebastian
August 30, 2023
Great course with easy examples and good tasks to complete (optional), in general has a lot of crucial topics to understand basics and more complex multithreading programming. Thank you James great teacher.
Ariel
August 24, 2023
The topics cover many things about multi-threading. The examples are good to understand the concepts and applied in real problems. There are a lot of concepts bringing to the table about parallel and concurrent programming, that's give us more context to design a solution.
Howlite
August 24, 2023
If I attend this course, the lecturer should assume I am a modern CPPer. The introduction of universal init, lambda, move semantics, chrono... Today is 2023, they are the basics in the basics. And, even these basic knowledge, the lecturer did not show any thing could inspired me, any! These concepts, like lambda, move semantics, the guy also did not introduce well, only lie the surface. Currently, the introduction part drives me upset. I doubt I will apply for refund in the future. But if things going better, I will revise this rude comment.
Swathi
August 10, 2023
Yes! This course helped me to multithreading concepts very clearly. I have enjoyed learning this!. I got a clear picture on mutex, packaged_task and async. I request my mentor to provide a separate course on section 10
Mikolaj
July 29, 2023
The course contains a wholesome presentation of the most important multithreading features and concepts in context of C++ programming. All the explanations are clear and concise.
Dustin
June 13, 2023
This was a really good course to start understanding Multithreading and Concurrency in C++. Lots of good simple examples and practice. There is a lot of this at my current job and now I have a better idea of what is actually going on. Highly recommend.
Ozan
May 15, 2023
Mr Raynard is an exceptional teacher. He explained an OS related concept that my teacher at my university couldn't explain for hours, in a laughable time like 12 minutes. He've done it gracefully that I can't express my gratitude enough. He clearly has extensive knowledge about C++ and that's what I'm looking when I buy a course from that language. Because it is the most absurd programming language on earth and I need someone to tell me why are the things the way they are in that weird language. He exactly does that and this affects my learning process quite positive. Also he speaks very clearly and fluently (something you can no longer find on Udemy these days) that you don't need to speed up the tutorials. Normally I'd go like x1.75 speed by default on most teachers. But I've watched this with 1.25-1.5, haven't felt an urge to speed tuts up. Anyways, awesome course! There are tons of information in those 7 hours. Don't even hesitate to buy it if you're interested in concurrency in C++. It may be better if you start from C++ even if you're interested with concurrency in other languages.
Ludvik
May 3, 2023
Excellent introduction to threading. Would be great to have a follow on course regarding design patterns for common communications use cases.
Richard
April 18, 2023
Course is well laid out, easy to follow, not too heavy, layered in its gradated complexity of a complex topic, and instructor is responsive to assignments and Q&A's. Really cannot fault this course at all and recommend it to any C++ programmer that wants to understand concurrency and the nuances therein. I'm actually so impressed I want to find his other course on advanced C++ because I feel like I will learn things I didnt know before. Never stop learning!
Honey
April 10, 2023
This course is must for engineers who want to look beyond the C++ std::thread class. This course will touch most of concurrency facilities provided by modern C++ - mutex, conditional variables, std::async, std::futures, std::promise, std::packaged_task etc. James also provides some reasoning into which construct to use when. Overall good course, if sound were a bit louder than it would be better.
Oleksandra
March 21, 2023
I got basic knowledge like thread, mutex, semaphore as well as modern C++ features like async, future, package_task. This course requires knowledge of C++. Highly recommended!
Morteza
January 3, 2023
For me, it was the same as the real class. The instructor responded to all my questions and issues during the course. There are some arbitrary assignments that force students to be involved in the course. Thanks, James for this course!

Charts

Price

Learn Multithreading with Modern C++ - Price chart

Rating

Learn Multithreading with Modern C++ - Ratings chart

Enrollment distribution

Learn Multithreading with Modern C++ - Distribution chart
3514454
udemy ID
9/20/2020
course created date
11/27/2020
course indexed date
Bot
course submited by