Free Download Turbocharge Your C++ With Concurrency: Weekend Crash Course
Published 3/2023
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 562.99 MB | Duration: 1h 57m
C++20, Multithreading, Concurrency, Modern C++, C++11,C++14, C++17, Parallel algorithms, Coroutines, Synchronization
Free Download What you'll learn
Mastered the fundamentals of C++ concurrency syntax, enabling you to write efficient and high-performance concurrent code with confidence.
Gained hands-on experience with the latest C++20 concurrency features, such as coroutines, cooperative cancellation, std::jthread, semaphore, barrier, and latch
Enhanced your problem-solving skills by learning how to leverage modern C++ concurrency techniques to tackle complex and time-sensitive tasks in your projects.
Acquired the ability to identify and apply the most suitable concurrency tools for various scenarios, ensuring that your code is both maintainable and scalable.
Developed a strong foundation in C++ concurrency that will serve as a stepping stone for further exploration and mastery of advanced topics in concurrent and pa
Requirements
Basic C++ knowledge: Students should have a fundamental understanding of C++ programming concepts, including syntax, data structures, loops, functions, and object-oriented principles. This course is designed to build on your existing C++ knowledge by introducing concurrency concepts.
Access to a C++ development environment: To follow along with the examples and practice the concurrency techniques taught in the course, students will need access to a C++ development environment (such as Visual Studio, Code::Blocks, or CLion) that supports the C++20 standard.
Time commitment: As this is a weekend crash course, students should be prepared to dedicate a significant amount of time over the weekend to actively engage with the course material, follow along with the examples, and complete any assigned exercises. Your commitment to the learning process is crucial for maximizing the benefits of this course.
Eagerness to learn: While prior experience with concurrency is not required, students should have a strong interest in learning about C++ concurrency and be eager to expand their programming skills. A proactive attitude and enthusiasm for learning will greatly enhance your experience and help you to absorb the material more effectively.
Description
Welcome to "Turbocharge Your C++ with Concurrency: A Weekend Crash Course"! Are you a programmer who has recently learned C++ and wants to unlock the true power of modern C++ concurrency? Look no further! In just one weekend, we will help you quickly grasp the essentials of C++ concurrency and supercharge your coding skills.In this fast-paced and intensive course, we will focus exclusively on the syntax of C++ concurrency, allowing you to understand and apply the features efficiently in your own projects. We know your time is valuable, so we've carefully designed short, easy-to-follow lectures that introduce syntax and explain its usage through concise examples. This way, you'll maximize your learning experience without getting bogged down in unnecessary details.Our curriculum includes the latest C++20 features, ensuring that you are up-to-date with the most cutting-edge concurrency tools. You'll learn about coroutines, cooperative cancellation, std::jthread, semaphore, barrier, and latches. These powerful features will take your C++ skills to the next level and make you a more effective and competitive programmer in today's fast-evolving tech landscape.This course is perfect for you if you've just learned C++ and are eager to dive into the world of concurrency without spending weeks on theory and complex projects. By the end of this weekend, you'll have a solid understanding of modern C++ concurrency syntax and will be ready to apply it in real-world scenarios.So, what are you waiting for? Enroll now, and let's turbocharge your C++ skills together with this weekend's crash course!Why is Mastering Modern C++ Concurrency Features Crucial for Today's Programmers?Understanding and utilizing modern concurrency features built into the C++ language is of paramount importance in today's fast-paced, technology-driven world. As software applications and systems become increasingly complex and resource-intensive, the ability to write efficient, high-performance concurrent code is a highly sought-after skill. By learning modern C++ concurrency features, you will unlock the true potential of multicore processors, significantly improving the performance and responsiveness of your applications. This knowledge not only sets you apart as a programmer but also allows you to tackle complex, real-world problems more effectively. By investing in your skills and mastering modern C++ concurrency, you will stay ahead of the curve, becoming a valuable asset in the competitive software development landscape and opening up a world of opportunities in your career.Evolution of the C++ Memory ModelThe C++ concurrency model has evolved significantly from C++11 to C++20, introducing new language features and library components that provide more powerful and flexible support for concurrent programming. Here are some of the significant changes that have occurred:C++11: C++11 introduced the first set of language-level concurrency features, including the std::thread class for creating and managing threads, mutexes and condition variables for synchronization, and atomic types for lock-free programming. C++11 also defined the Sequential Consistency-Data Race Free (SC-DRF) memory model, which guarantees correct behavior for well-synchronized programs.C++14: C++14 introduced several improvements to the concurrency features introduced in C++11, including new constructors and member functions for std::thread, support for heterogeneous lookup in concurrent containers, and enhancements to the std::atomic template.C++17: C++17 introduced several new concurrency features and enhancements, including support for parallel algorithms in the Standard Template Library (STL), structured bindings for returning multiple values from std::thread functions, and support for shared_mutex for shared read access and exclusive write access. C++17 also introduced a new memory model that provides stronger guarantees for atomic operations.C++20: C++20 builds on the concurrency features introduced in previous language versions and adds several new features and enhancements. These include the atomic_ref class, which provides a safer way to access shared variables without the need for explicit synchronization, improvements to the memory model to reduce the need for explicit fences and barriers, and enhancements to the coroutines library that make it easier to write asynchronous code.The evolution of the C++ concurrency model from C++11 to C++20 has provided developers with a more powerful and flexible set of tools for writing efficient and correct concurrent programs. The new language features and library components introduced in each version have addressed many of the challenges and limitations of earlier versions. In addition, they have made concurrent programming in C++ more accessible and easier to use.
Overview
Section 1: Introduction
Lecture 1 Course Objectives
Section 2: Managing Threads ( C++11 onwards )
Lecture 2 Launching Threads
Lecture 3 Passing arguments to threads
Lecture 4 Member fuctions of std::thread ( C++11 ) and std::jthread ( C++20 )
Lecture 5 Cooperative Cancellation feature released in C++20
Lecture 6 Cooperative Cancellation General workflow possible in programs using C++20
Lecture 7 Practical considerations of using threads in C++ 11/14/17/20
Lecture 8 When to use std::async?
Section 3: Synchronization in multhreaded applications using C++ concurrency features
Lecture 9 Overview of synchronization mechanisms
Lecture 10 Introduction to latches introduced in C++20
Lecture 11 Code example of latches ( needs C++20 )
Lecture 12 Use cases of std::latch in programs using C++20
Lecture 13 introduction to barriers introduced in C++20
Lecture 14 Code example of std::barrier (needs C++20)
Lecture 15 Use cases of std::barrier in programs using C++20
Section 4: Futures ( C++11 onwards )
Lecture 16 Introduction to futures in Modern C++
Lecture 17 Member functions of std::future
Lecture 18 Blocking and Polling usage of std::future
Lecture 19 Member functions of std::promise
Lecture 20 Passing data using std::future and std::promise
Lecture 21 Passing exception using std::future and std::promise
Lecture 22 Futures in C++ are single shot!
Lecture 23 Shared futures
Lecture 24 std::async revisted as concurrency mechanism
Section 5: Mutex ( C++11 onwards )
Lecture 25 Introduction to std::mutex
Lecture 26 Locks and Mutexes in modern C++ for seamless life time management
Lecture 27 Code example of locks and mutexes in modern C++
Section 6: Conditional Variables ( C++11 onwards )
Lecture 28 Busy waiting mechanism
Lecture 29 Conditional Variables in modern C++
Lecture 30 Co-operative cancellation using conditional variables (using C++20 )
Section 7: Semaphore ( C++20 onwards )
Lecture 31 Introduction to Semphores (since C++20)
Lecture 32 Member functions of std::semaphore (since C++ 20)
Lecture 33 Using semaphores in programs built with C++20
Section 8: Atomics ( C++11 onwards )
Lecture 34 Basics of Atomics
Lecture 35 Overloaded operators with atomics
Lecture 36 Cautions while using atomic overloads
Lecture 37 Member functions of atomics
Lecture 38 More member functions of atomics
Lecture 39 Summary and advice while working with atomics
Section 9: Parallel Algorithms ( since C++17)
Lecture 40 Introduction to parallel algorithms
Lecture 41 Execution policies for parallel algorithms ( C++17 and C++20 )
Lecture 42 Quick demo parallel algorithms using concurrency
Section 10: Coroutines ( as shipped in C++20)
Lecture 43 Coroutines Disclaimer
Lecture 44 Basic flow diagram of control of coroutines in C++20
Lecture 45 Member functions of co-routines task structure shipped in C++20
Lecture 46 Flowchart of coroutines execution using the API availble in C++20
Section 11: Closing remarks
Lecture 47 Third party libraries ( can be used with C++ 11, C++14, C++17, C++20 )
Lecture 48 Conclusion
Lecture 49onus Lecture
Novice C++ developers: If you've recently learned the basics of C++ programming and are eager to expand your knowledge and skills, this course is perfect for you. Our weekend crash course will quickly introduce you to the world of concurrency, allowing you to harness its power in your future projects.,Self-taught programmers: For those who have learned C++ through online resources or personal projects but have not yet delved into concurrency, this course will bridge the gap. By focusing on syntax and practical examples, you'll gain a solid understanding of concurrency in modern C++ without getting lost in complex theories.,Professionals transitioning to C++: If you're a programmer experienced in other languages and have recently begun working with C++, this course will help you quickly grasp C++ concurrency concepts. This knowledge will make you more efficient and versatile in your new programming environment.,Busy developers seeking a quick refresher: If you have some experience with C++ but haven't worked with concurrency in a while or are unfamiliar with the latest C++20 features, this weekend crash course is an ideal way to quickly update your skills. You'll learn the most important aspects of modern C++ concurrency, enabling you to apply them immediately in your projects.
Homepage
https://www.udemy.com/course/turbocharge-cpp-concurrency-weekend-crash-course/
Buy Premium From My Links To Get Resumable Support,Max Speed & Support Me
Links are Interchangeable - Single Extraction
Comments