Modern C++ Concurrency in Depth
4.3 (3 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
15 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Modern C++ Concurrency in Depth to your Wishlist.

Add to Wishlist

Modern C++ Concurrency in Depth

in depth discussion on modern c++ concurrency features including memory model, lock free data structure, thread pools
4.3 (3 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
15 students enrolled
Created by Kasun Liyanage
Last updated 8/2017
English
Curiosity Sale
Current price: $10 Original price: $70 Discount: 86% off
30-Day Money-Back Guarantee
Includes:
  • 4 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Build lock free and lock based thread safe data structures and algorithms which harvest the power of modern day multi-core processors
View Curriculum
Requirements
  • basic of c++ programming , some knowledge about data structures and algorithms would be helpful
Description

C++ programming language can be categorized under many topics. Some say its a general purpose programming language, some say its a object oriented version of C, but above all i liked to categorized under system programming language. One characteristic of any system programming language including C++ is that language should be able to execute faster compare to other languages like java etc. 

C++ paradigm took sharp turn with the introduction of C++11 standards. The most notable difference with previous version is the introduction of new memory model. Memory model is the key part of any language, and the performance of all the functionalities depends on that language memory model. With new c++ memory model, we can exploit tremendous power of  modern multi core processors. 

Programming a proper C++ code with better memory reclaim mechanism is tough task. But if we want to code thread safe code which can harvest underline processors true power is much more difficult task. In this course we will have in depth discussion on  C++ concurrency features including memory model. We will implements thread safe data structures and algorithms, both lock based manner and lock free manner. Proper lock free implementations of data structures and algorithms will provide unprecedented performance output. Let me listed down key aspects we cover in this course below.

1.Basics of C++ concurrency(threads, mutex, package_task, future ,async, promise)

2.Lock based thread safe implementation of data structures and algorithms.

3.C++ memory model.

4.Lock free implementation of data structures and algorithms.

5. Proper memory reclaim mechanism for lock free data structures.

6. Design aspects of concurrent code.

7. In depth discussion on thread pools

Who is the target audience?
  • Anyone who wants to widen you skills with c++ programming.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
57 Lectures
04:01:11
+
Thread management guide
10 Lectures 42:31


Joinability of threads
03:27

Join and detach functions
04:20

How handle joining in exception scenarios
05:04

How to pass parameters to a thread
04:08

Problematic situations may arise when passing parameters to a thread
04:29

Transferring ownership of a thread
04:14

Some useful operations on thread
03:52

Parallel accumulate algorithm implementation
06:28
+
Thread safe access to shared data and locking mechanisms
9 Lectures 36:45


mutexes
05:30

Things to remember when using mutexes
02:33

Thread safe stack implementation : introduction to stack
04:33

Thread safe stack implementation : implementation
06:24

Thread safe stack implementation : race condition inherit from the interface
05:13

Dead locks
04:21

unique locks
02:32
+
Communication between thread using condition variables and futures
11 Lectures 45:30

Details about condition variables
04:10

Thread safe queue implementation : introduction to queue data structure
04:54

Thread safe queue implementation : implementation
05:06

introduction to futures and async tasks
04:17

async tasks detailed discussion
05:08

Parallel accumulate algorithm implementation with async task
03:54

Introduction to package_task
03:42

Communication between threads using std::promises
03:03

Retrieving exception using std::futures
02:55

std::shared_futures
03:51
+
Lock based thread safe data structures and algorithm implementation
4 Lectures 19:36
introduction to lock based thread safe data structures and algorithms
03:54

queue data structure implementation using linked list data structure
06:14

thread safe queue implementation
02:42

+
C++ memory model and atomic operations
17 Lectures 01:08:23
Introduction to atomic operations
03:10

Functionality of std::atomic_flag
03:52

Functionality of std::atomic_bool
05:45

Explanation of compare_exchange functions
04:33

atomic pointers
06:21

General discussion on atomic types
02:04

Important relationships related to atomic operations between threads
03:39

Introduction to memory ordering options
02:25

Discussion on memory_order_seq_cst
05:34

Introduction to instruction reordering
04:05

Discussion on memory_order_relaxed
04:31

Discussion on memory_order_acquire and memory_order_release
04:39

Important aspects of memory_order_acquire and memory_order_release
02:09

Concept of transitive synchronization
02:43

Discussion on memory_order_consume
02:55

Concept of release sequence
05:30

Implementation of spin lock mutex
04:28
+
Lock free data structures and algorithms
6 Lectures 28:26
Introduction and some terminology
02:06

Introduction to thread safe lock free stack
04:44

Implementation of thread safe lock free stack
07:06

stack memory reclaim mechanism using thread counting
06:01

stack memory reclaim mechanism using thread counting detailed discussion
03:56

stack memory reclaim mechanism using hazard pointers
04:33
About the Instructor
Kasun Liyanage
4.3 Average rating
3 Reviews
15 Students
1 Course
Software engineer & founder of intellect, co founder at cpphive

Software engineer with years of experience in industry with c++ and java programming language. And entrepreneur and founder of intellect. creator of GPU MLIB library which provides GPU optimized parallel implementation of machine learning algorithms. My current project include fashion design framework which allows user to get the live fit on room experience. I am graduate on electrical and information engineering and i currently reading for master in artificial intelligence.