Tags
Language
Tags
May 2025
Su Mo Tu We Th Fr Sa
27 28 29 30 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
    Attention❗ To save your time, in order to download anything on this site, you must be registered 👉 HERE. If you do not have a registration yet, it is better to do it right away. ✌

    ( • )( • ) ( ͡⚆ ͜ʖ ͡⚆ ) (‿ˠ‿)
    SpicyMags.xyz

    Practical Concurrent Data Structure Design With Modern C++

    Posted By: ELK1nG
    Practical Concurrent Data Structure Design With Modern C++

    Practical Concurrent Data Structure Design With Modern C++
    Published 3/2023
    MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
    Language: English | Size: 792.99 MB | Duration: 2h 27m

    Concurrency, Multithreading, Data Structures, Design Patterns, C++11, C++14, C++17, C++20, Architecture, Code review tip

    What you'll learn

    Designing concurrent data structures using Modern C++

    Using C++ memory model to build lock free data strcutures

    Using the Modern C++ features to build high performance data structures

    Pitfalls and challenges to avoid while designing concurrent systems using C++

    Requirements

    Should be aware the C++ concurrency syntax

    Should be able to compile codes independently

    No domain specific niche knowledge required

    Willing to followup syntax on cppreference website and tryout snippets independently

    Description

    Welcome to "Practical Concurrent Data Structure Design using Modern C++"!In this course, you will learn how to design and implement efficient concurrent data structures in C++ using the latest techniques and best practices.Concurrency is becoming increasingly important in modern software development, and designing data structures that multiple threads can safely and efficiently access is essential. In this course, you will start by understanding the basic concepts of concurrency and the challenges of designing concurrent data structures.Next, you will learn about the different types of concurrent data structures and how to select the right one for your use case. Finally, you will explore the various synchronization techniques and mechanisms in C++ to ensure thread safety, such as mutexes, condition variables, and atomics.You will also learn about the different memory models and how to design lock-free and wait-free data structures. You will study the principles of memory reclamation and garbage collection, which are critical for creating efficient lock-free data structures.Throughout the course, you will work on practical examples and hands-on exercises to reinforce your understanding of the material. In addition, you will design and implement concurrent data structures such as queues, stacks, hash tables, and trees using the latest C++ features, such as the Standard Template Library (STL), smart pointers, and lambda expressions.By the end of this course, you will have a solid understanding of designing and implementing efficient concurrent data structures in C++. As a result, you can confidently create high-performance software that scales well on multi-core systems and can handle a high degree of concurrency.Here are five reasons why learning concurrency using C++20 is essential:Standardized support for concurrency: C++20 has introduced new features and enhancements that support concurrent programming. The Standard Template Library (STL) now supports parallel algorithms, atomic operations, and memory models. This means that C++20 provides a standardized way to write concurrent programs, making it easier for developers to write correct and efficient code.High-performance: C++ is a high-performance language, and with the new concurrency features in C++20, it is possible to write concurrent programs that are both correct and fast. Using atomics, for example, allows for lock-free synchronization, which can improve performance by reducing the overhead of acquiring and releasing locks.Memory model improvements: C++20 introduces a new memory model that provides stronger guarantees for concurrent access to shared memory. This makes it easier to reason about the behavior of concurrent programs and helps prevent subtle bugs that can be hard to find and fix.Better type safety: C++20 introduces new features that improve type safety in concurrent programs. For example, the atomic_ref class provides safer access to shared variables without explicit synchronization.Practical applications: Concurrency is becoming increasingly important in modern software development as multi-core processors become more common. Learning how to write concurrent programs using C++20 can give you a competitive advantage in the job market and enable you to develop high-performance software that can handle a high degree of concurrency.

    Overview

    Section 1: Introduction

    Lecture 1 Introduction

    Lecture 2 C++ standard features overview C++98/11/14/17/20/23

    Lecture 3 Amdahl's law in concurrent programs

    Lecture 4 When to use concurrency or multithreading optimally

    Section 2: Lock Free Design fundamentals

    Lecture 5 Wait free concpets

    Lecture 6 Lock Free concept

    Lecture 7 Obstruction Free Concept

    Lecture 8 Thinking in Transactions like ACID

    Lecture 9 C++ Atomic semantics quick refresher

    Lecture 10 Considerations while using C++ atomics

    Section 3: Double Check Locking with modern C++

    Lecture 11 The concept in a nutshell in a single threaded context

    Lecture 12 Concurrent implementation using mutex and atomics using standard C++11

    Lecture 13 Using once_flag in C++11

    Lecture 14 The cleanest concurrent initalization solution

    Lecture 15 Locks, atomics and concurrent design

    Section 4: Singly Linked List using Modern C++

    Lecture 16 Design Goals

    Lecture 17 Class overview using Modern C++ features

    Lecture 18 Constructor, Destructor and Find implementation code walkthrough

    Lecture 19 push_front function code walkthrough

    Lecture 20 pop_front function code walkthrough

    Section 5: ABA problem, RCU, Hazard pointers. Concurrent Solutions using Modern C++

    Lecture 21 ABA Problem explained

    Lecture 22 Overview of possible solutions for ABA problem

    Lecture 23 Overview of solutions for deletetion related problems

    Lecture 24 Singly Linked List using the Reference class and other modern C++ features

    Lecture 25 Implementation details for using the reference class

    Lecture 26 Concurrency analysis of mutlithreading events in the class

    Lecture 27 Read, Copy, and Update (RCU) design goals

    Lecture 28 RCU example with concurrent dynamic array design using Modern C++

    Lecture 29 Hazard pointer

    Lecture 30 Thread pool design considerations when using C++20 or higher.

    Lecture 31 Apply theory in concurrent applications

    Section 6: Design considerations for building multithreading solutions using modern c++

    Lecture 32 Important assumptions before going further

    Lecture 33 Challenges in concurrent design using modern c++

    Lecture 34 Design advice for dealing with multithreading in production

    Lecture 35 Concurrent architecture overview

    Section 7: Testing and debugging challengers with concurrent data structures

    Lecture 36 Common types of bugs in multithreaded programs

    Lecture 37 Bugs related to unwanted blocking

    Lecture 38 Bugs releated to Race conditions

    Lecture 39 Code review techniques for dealing with multithreading

    Lecture 40 Challenges in testing multithreaded code

    Lecture 41 Design for testability

    Lecture 42 Testing Techniques

    Section 8: Conclusion

    Lecture 43 Libraries, Tool and closing remarks

    Lecture 44 [Bonus Lecture]

    Intermediate C++ programmers exploring concurrey in modern C++,Intermediate C++ programmers looking to grow in their roles from developer to Leads,Intermediate C++ programmers curious to understand practical implementation of modern c++ concurrency tools,C++ programmers aware of syntax but looking for opportunities to build personal projects using advanced language features.,Senior Software Engineers planning to become Tech Leads in near future,All C++ programmers who have been coding in C++ for 12 months or more.