4.4
Advanced
14h
Modern C++ Concurrency: Get the most out of any machine
Explore modern C++ concurrency, from C++11 to C++20, combining theory with practice. Gain insights into parallel algorithms, co-routines, and best practices through interactive examples and real-world scenarios.
"Concurrency with Modern C++" is a journey through the present and upcoming concurrency features in C++.
- C++11 and C++14 have the basic building blocks for creating concurrent and parallel programs.
- With C++17 we have the parallel algorithms from the Standard Template Library (STL). That means that most STL based algorithms can be executed sequentially, parallel, or vectorized.
- The concurrency story in C++ goes on. With C++20 we can hope for extended futures, co-routines, transactions, and more.
In addition to explaining the details of concurrency in modern C++, this course gives you many interactive code examples; therefore, you can combine theory with practice to get the most out of it.
Apart from theory, this course contains a lot of real-world scenarios and use-cases along with pitfalls and how to overcome them using best practices.
"Concurrency with Modern C++" is a journey through the present and upcoming concurrency features in C++.
- C++11 and C++14 hav...Show More
Content
1.
Introduction
1 Lessons
Get familiar with Modern C++ concurrency concepts through practical and theoretical examples.
2.
A Quick Overview
6 Lessons
Look at C++ concurrency evolution, covering C++11 to C++20, practical multithreading, and challenges.
3.
Memory Model: The Contract
2 Lessons
Break apart the crucial aspects of the C++ memory model and its challenges.
4.
Memory Model: Atomics
9 Lessons
Grasp the fundamentals of C++ atomic operations, memory models, and thread synchronization techniques.
5.
Memory Model: Synchronization and Ordering Constraints
9 Lessons
Dig deeper into C++'s memory model for synchronization, ordering constraints, and atomic operations.
6.
Memory Model: Fences
5 Lessons
Tackle memory fences to ensure proper synchronization and prevent unintended operation reordering.
7.
Multithreading: Threads
9 Lessons
Build on managing threads and synchronization in C++ to ensure safe concurrency.
8.
Multithreading: Shared Data
12 Lessons
Step through managing shared data with mutexes, locks, and thread-safe initialization in multithreading.
9.
Multithreading: Local Data
1 Lessons
Get started with thread-local data for isolated, race-free multithreaded programs.
10.
Multithreading: Condition Variables
2 Lessons
Go hands-on with condition variables for effective thread synchronization and avoid common issues.
11.
Multithreading: Tasks
11 Lessons
Grasp the fundamentals of utilizing tasks, promises, and futures for efficient multithreaded programming in C++.
12.
Case Study: Calculate Sum of a Vector
15 Lessons
Explore efficient vector summation methods, including single-threaded and multithreaded approaches with locks, atomics, and tasks.
13.
Case Study: Thread-Safe Initialization of a Singleton
9 Lessons
Follow the process of implementing thread-safe singleton patterns, focusing on Meyers Singleton.
14.
Case Study: Ongoing Optimization with CppMem
9 Lessons
Practice using CppMem for understanding C++ concurrency, memory behavior, and optimizing programs.
15.
Parallel Algorithms of the Standard Template Library
5 Lessons
Break down STL's parallel algorithms, execution policies, and functional programming in C++.
16.
The Future: C++20
11 Lessons
Walk through new C++20 features for concurrency, including atomic smart pointers, extended futures, transactional memory, and coroutines.
17.
Coding Examples
9 Lessons
Go hands-on with concurrency examples to understand and resolve common issues.
18.
Best Practices
5 Lessons
Enhance your skills in minimizing data sharing, effective memory models, and thread safety.
19.
The Time Library
7 Lessons
Take a closer look at time points, durations, clocks, and time management in C++ multithreading.
20.
Glossary
2 Lessons
Focus on understanding key C++ concurrency terms, coding, and execution environments.
21.
About the Author
1 Lessons
Approach the author's extensive industry experience and contributions to modern programming.
Certificate of Completion
Showcase your accomplishment by sharing your certificate of completion.
Course Author:
Developed by MAANG Engineers
Trusted by 2.8 million developers working at companies
"These are high-quality courses. Trust me. I own around 10 and the price is worth it for the content quality. EducativeInc came at the right time in my career. I'm understanding topics better than with any book or online video tutorial I've done. Truly made for developers. Thanks"
Anthony Walker
@_webarchitect_
"Just finished my first full #ML course: Machine learning for Software Engineers from Educative, Inc. ... Highly recommend!"
Evan Dunbar
ML Engineer
"You guys are the gold standard of crash-courses... Narrow enough that it doesn't need years of study or a full blown book to get the gist, but broad enough that an afternoon of Googling doesn't cut it."
Software Developer
Carlos Matias La Borde
"I spend my days and nights on Educative. It is indispensable. It is such a unique and reader-friendly site"
Souvik Kundu
Front-end Developer
"Your courses are simply awesome, the depth they go into and the breadth of coverage is so good that I don't have to refer to 10 different websites looking for interview topics and content."
Vinay Krishnaiah
Software Developer
Hands-on Learning Powered by AI
See how Educative uses AI to make your learning more immersive than ever before.
AI Prompt
Code Feedback
Explain with AI
AI Code Mentor
Free Resources