Section 1 : 1 Introduction

Lecture 1 Motivation Operating Systems fundamentals- Part 1
Lecture 2 Operating Systems Fundamentals - Part 2 00:07:39 Duration

Section 2 : 2 Threading fundamentals - Thread Creation

Lecture 1 Tips about Coding Lectures and Debugging Instructions
Lecture 2 Threads Creation - Part 1 Thread Capabilities Debugging 00:07:14 Duration
Lecture 3 Threads Creation - Part 2 00:08:27 Duration
Lecture 4 Thread Creation - MultiExecutor Solution

Section 3 : 3 Threading fundamentals - Thread Coordination

Lecture 1 Thread Termination Daemon Threads 00:07:18 Duration
Lecture 2 Joining Threads 00:08:19 Duration
Lecture 3 Multithreaded Calculation - Solution

Section 4 : 4 Performance Optimization

Lecture 1 Introduction to Performance Optimizing for Latency - Part 1 00:09:36 Duration
Lecture 2 Optimizing for Latency Part 2 - Image Processing 00:16:15 Duration
Lecture 3 Optimizing for Throughput Part 1 00:05:15 Duration
Lecture 4 Optimizing for Throughput Part 2 - HTTP server Jmeter 00:12:26 Duration

Section 5 : 5 Data Sharing between Threads

Lecture 1 Stack Heap Memory Regions 00:07:53 Duration
Lecture 2 Resource Sharing Introduction to Critical Sections 00:11:07 Duration

Section 6 : 6 The Concurrency Challenges Solutions

Lecture 1 Critical Section Synchronization 00:07:33 Duration
Lecture 2 Atomic Operations Volatile Metrics practical example 00:10:19 Duration
Lecture 3 Min - Max Metrics - Solution
Lecture 4 Race Conditions Data Races 00:08:51 Duration
Lecture 5 Locking Strategies Deadlocks 00:11:30 Duration

Section 7 : 7 Advanced Locking

Lecture 1 ReentrantLock Part 1 - tryLock and interruptible Lock
Lecture 2 ReentrantLock Part 2 - User Interface Application example 00:08:14 Duration
Lecture 3 Reentrant Read Write Lock Database Implementation
Lecture 4 Product Reviews Service - Solution

Section 8 : 8 Inter-Thread Communication

Lecture 1 Semaphore - Scalable Producer Consumer implementation 00:08:36 Duration
Lecture 2 Condition Variables - All purpose Inter-Thread Communication 00:08:41 Duration
Lecture 3 Objects as Condition Variables - wait() notify() and notifyAll()

Section 9 : 9 Lock-Free Algorithms Data-Structures Techniques

Lecture 1 Introduction to Non-blocking Lock Free operations 00:06:48 Duration
Lecture 2 Atomic Integers Lock Free E-Commerce 00:05:17 Duration
Lecture 3 Atomic References Compare And Set Lock-Free High Performance Data Structure

Section 10 : 10 Beyond Multithreading - Final Lecture

Lecture 1 Distributed Systems Big Data Performance 00:04:46 Duration