Preview this course
₹299 ₹599 50% off
incl. GST
left at this price!
Sign up to buy Already a member? Log in

7-day money-back guarantee

Bestseller Recently updated Programming · Technology

Concurrency & Multithreading: Threads, Locks & Async Programming

A from-the-ground-up, Java-anchored course on concurrent programming — threads, locks, deadlocks, memory models, thread pools, virtual threads, async/await and structured concurrency, built up to how real systems stay correct under load.

4.1 (76 ratings) Created by Thomas Berger
Advanced 92 lessons 16h 49m Updated Jun 2026 English
Preview this course
₹299 ₹599 50% off
incl. GST
left at this price!
Sign up to buy Already a member? Log in

7-day money-back guarantee

What you'll learn

Reason about race conditions and memory visibility from first principles
Choose the right synchronization primitive — and know when to use none at all
Prevent, detect and diagnose deadlocks and liveness failures
Understand the Java Memory Model: happens-before, atomics, and volatile
Design with thread pools, virtual threads, async, and structured concurrency
Apply concurrent design patterns — producer/consumer, worker pool, pipeline, actors, reactive
Measure and tune concurrent performance, and debug concurrent failures
Pick the right concurrency model for a problem using a clear decision framework

This course includes

16h 49m of on-demand content
92 lessons across 22 sections
Access on mobile and desktop
Certificate of completion
Lifetime access
Curriculum

Course content

22 sections · 92 lessons · 16h 49m

Course Introduction Preview 7 min
Why Concurrency Matters Preview 9 min

Sequential Execution Preview 9 min
What Is Concurrency? 9 min
Concurrency vs Parallelism 10 min
Processes and Programs 10 min
Introducing Threads 10 min
Threads in Java: "Hello, Thread" 11 min

CPU Scheduling Basics 10 min
Context Switching 10 min
Thread States 11 min
Thread Scheduling in Practice 11 min

Shared State Explained 9 min
Race Conditions 11 min
Data Corruption 11 min
Why Concurrent Bugs Are Difficult 10 min

Critical Sections 10 min
Mutual Exclusion 10 min
Introduction to Locks 10 min
Locking Walkthrough (synchronized) 12 min

Mutexes 10 min
Reentrant Locks 11 min
Read-Write Locks 11 min
Optimistic Locking with StampedLock 12 min
Spinlocks 10 min
Recursive Locking Pitfalls 11 min

What Is a Deadlock? 10 min
The Four Conditions for Deadlock 11 min
Deadlock Prevention 12 min
Deadlock Detection & Recovery 11 min
Livelock & Starvation 11 min

The Memory Visibility Problem 10 min
volatile and Visibility 11 min
Memory Ordering 11 min
Atomic Operations 12 min
The Java Memory Model & Happens-Before 12 min
Double-Checked Locking & the ABA Problem 12 min

Producer/Consumer Problem 10 min
Condition Variables 11 min
Semaphores 10 min
Barriers & Latches 11 min
Message Passing 11 min

Immutability 10 min
Thread Confinement 10 min
Thread-Local Storage 11 min
Copy-on-Write & Stateless Design 11 min

Concurrent Collections 11 min
Lock-Free Programming with CAS 12 min
ABA Revisited & When Lock-Free Is Worth It 12 min

Why Creating Threads Is Expensive 10 min
Thread Pools 12 min
Task Scheduling 11 min
Work Stealing 12 min

Green Threads & Fibers 10 min
Java Virtual Threads (Project Loom) 12 min
Goroutines & CSP 11 min
Coroutines 11 min

Why Async Exists 10 min
Blocking vs Non-Blocking Operations 11 min
Event Loops Explained 11 min
Futures & Promises 12 min

Understanding Async Functions 10 min
Await Explained 11 min
Async Error Handling 11 min
Async Pitfalls 12 min

The Problem with Unstructured Concurrency 10 min
Scoped Task Lifetimes & Nurseries 11 min
Cancellation & Error Aggregation 12 min

Producer/Consumer Pattern 10 min
Worker Pool Pattern 11 min
Pipeline Pattern 11 min
Actor Model 11 min
Reactive Systems 11 min

Measuring Concurrency Performance 11 min
Contention 12 min
False Sharing 11 min
Scaling Across CPU Cores 12 min

Debugging Race Conditions 11 min
Debugging Deadlocks 11 min
Observability for Concurrent Systems 11 min
Concurrency Testing Strategies 12 min

Concurrency in Web Servers 11 min
Concurrency in Databases 12 min
Concurrency in Operating Systems 11 min
Concurrency in Distributed Systems 12 min

Choosing the Right Concurrency Model 11 min
Concurrency Decision Framework 10 min
Final Summary 12 min

P1 — Thread-safe Bounded Buffer 13 min
P2 — Build a Thread Pool 14 min
P3 — Concurrent Web Crawler 15 min
P4 — Mini Key-Value Store 15 min

Requirements

  • Working knowledge of one programming language (Java helpful but not required)
  • Basic data structures and comfort reading code
  • No prior concurrency experience assumed
  • Examples assume JDK 21+ (virtual threads & structured concurrency), an IDE, and Maven/Gradle

Description

Concurrency is where good programmers get humbled: code that passes every test in development corrupts data in production, and the bug only appears under load, on a different machine, once a week. This course makes concurrency understandable — built from the ground up, one idea unlocking the next, until threads, locks, and async stop being scary and start being tools you reach for deliberately.

Concepts are language-agnostic, but code examples are anchored in Java because its concurrency toolkit (synchronized, java.util.concurrent, atomics, executors, CompletableFuture, virtual threads, the Java Memory Model) maps cleanly onto every idea in the course. Where a concept lives more naturally elsewhere — keyword async/await, goroutines, coroutines — the course points you there too.

What you'll learn

  • Foundations — sequential execution, concurrency vs parallelism, processes, threads, and how the OS schedules them
  • The danger — shared memory, race conditions, and data corruption, and why concurrent bugs are so hard
  • The fix — critical sections, mutual exclusion, and the full family of locks (mutexes, reentrant, read-write, stamped, spinlocks)
  • The hazards — deadlocks, the four conditions, prevention and detection, plus livelock and starvation
  • The deep truth — memory visibility, volatile, memory ordering, atomics, compare-and-swap, and the Java Memory Model's happens-before
  • Coordination — producer/consumer, condition variables, semaphores, barriers and latches, and message passing
  • Avoiding shared state — immutability, confinement, thread-locals, copy-on-write, and concurrent & lock-free data structures
  • Scaling up — thread pools and task-based concurrency, work stealing, and lightweight concurrency (virtual threads, goroutines, coroutines)
  • The async era — why async exists, blocking vs non-blocking, event loops, futures/promises, async/await, and structured concurrency
  • Mastery — concurrent design patterns, performance and contention, false sharing, scaling across cores, debugging, observability, and real-world architectures
  • Choosing a model — a decision framework for picking threads, pools, async, actors, or reactive systems

What you'll do

Every lesson pairs clear explanations and visual diagrams with runnable Java examples, hands-on exercises, and a self-check to test your understanding. The course finishes with four capstone projects — a thread-safe bounded buffer, a thread pool, a concurrent web crawler, and a mini key-value store — that tie every concept together.

Who it's for

Developers comfortable writing single-threaded programs who want a rigorous, practical understanding of concurrency — for building systems, passing interviews, or debugging real production issues. No prior concurrency experience required.

Your instructor
T

Thomas Berger

Java, Design Patterns & Low-Level Design · 15 yrs · Principal Engineer, Zentech

4.1 course rating 4 courses

Thomas is a 15-year JVM veteran who has shipped large Java platforms and mentored dozens of engineers through senior promotion. He is obsessed with clean object modelling, design patterns applied with restraint, and the kind of low-level design that holds up under a real interview loop.

4.1 course rating · 76 ratings

D
Dora Greenholt
7 months ago

Good, dependable course. It covered what I needed, and the pacing suited me as a working professional.

Helpful?
F
Floy Price
1 year ago

This exceeded my expectations. Clear delivery, great examples, and just the right amount of depth.

Helpful?
M
Miss Amely Hills III
1 year ago

Superb. The instructor is engaging and the projects reinforce exactly what you need to remember.

Helpful?
C
Camren Zemlak
2 months ago

Very good overall. The fundamentals are explained clearly, though some examples felt slightly dated.

Helpful?

Frequently asked questions

Yes — once you enroll, the course is yours to revisit forever. New revisions and bonus lessons are added at no extra cost.

Finish every lesson and you'll unlock a shareable certificate you can post on LinkedIn or include with job applications.

If the course isn't a fit, request a refund within 7 days of purchase — no questions asked.

Code, slides, and worksheets are downloadable on each lesson page. Videos stream from our CDN so you can watch on any device.

Each course states its level in the hero. If you're comfortable with the prerequisites listed, you're ready to start.

Students also bought

Advanced
System Design

Domain-Driven Design Masterclass

4.2 (49)

Turn tangled, ever-changing business rules into software that is a pleasure to extend. Learn st...

27h 59m Thomas Berger
₹299
Advanced
AI

Generative AI Masterclass

3.9 (109)

A complete, hands-on path from LLM fundamentals to a deployed Generative AI system. You build S...

29h 51m Marcus Chen
₹299
₹299 ₹599
Sign up to buy