Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Concurrency, Multithreading and Parallel Computing in Java
Bestseller
Highest Rated
Rating: 4.8 out of 5(3,885 ratings)
29,692 students

Concurrency, Multithreading and Parallel Computing in Java

Multithreading and Concurrency, Parallel Computation and MapReduce in Java + Fork-Join and Stream API, Virtual Threads
Created byHolczer Balazs
Last updated 8/2025
English

What you'll learn

  • Understand basic concurrency
  • Understand the basics of multithreading
  • Understand parallel processing
  • Able to use the concepts in real life scenarios
  • Understand concurrent collections
  • Understand synchronization and locking
  • Understand the Fork-Join Framework
  • Understand Stream API

Course content

17 sections135 lectures14h 16m total length
  • Introduction1:48

    Explore the fundamentals of threads and synchronization in Java, learn multiple ways to create threads, design parallel algorithms, and leverage the ForkJoin framework, the Stream API, and virtual threads.

Requirements

  • Basic Java (inheritance, object oriented programming)

Description

Welcome to your journey into the world of multithreading, concurrency, and parallel computing in Java — skills that are essential in today’s high-performance computing era!

In the age of Big Data, Machine Learning, and multi-core processors, understanding how to write efficient, thread-safe, and scalable applications is more important than ever. Whether you're building real-time systems, backend services, or distributed applications, this course will equip you with the tools and mindset to think concurrently.

We’ll start from the foundations — what threads are, how they work, and how to manage them — and steadily progress to advanced topics like parallel algorithms, the Fork-Join framework, and cutting-edge features like Virtual Threads introduced in Java's Project Loom.

Throughout the course, you’ll implement real-world simulations (like the classic Dining Philosophers and Library Student problem), gain hands-on experience, and learn to leverage Java’s concurrency libraries like a pro.


Section 1 - Multithreading Theory:

  • theory behind multithreading

  • pros and cons of multithreading

  • life cycle of a thead

Section 2 - Threads Manipulation:

  • starting threads (Runnable interface and Thread class)

  • join keyword

  • daemon threads

Section 3 - Inter-Thread Communication:

  • memory management of threads

  • synchronization and synchronized blocks

  • locks

  • wait and notify

  • producer-consumer problem and solution

  • concurrent collections

  • latch, cyclic barrier and blocking queues

  • delay queue, priority queue and concurrent maps

Section 4 - Multithreading Concepts:

  • volatile keywords

  • deadlocks and livelocks

  • semaphores and mutexes

  • dining philosophers problem

  • library application

Section 6 - Executors and ExecutorServices:

  • executors

  • executor services

Section 6 - Concurrent Collections:

  • synchronization with Collections

  • latches

  • cyclic barriers

  • delay and priority queues

  • concurrent HashMaps

  • CopyOnWriteArrayLists

Section 7 -  Simulations:

  • dining philosophers problem

  • library problem

Section 8 - Parallel Algorithms:

  • what is parallel computing

  • parallel merge sort

  • parallel algorithms

Section 9 - Fork-Join Framework

  • Fork-Join framework

  • maximum finding in parallel manner

Section 10 - Stream API

  • the Stream API explained with examples

  • map, flatMap, filtering, intermediate and terminal operations

  • sequential streams and parallel streams

Section 11 - Virtual Threads

  • platform threads and virtual threads

  • understanding virtual thread creation and operations

  • StructuredTaskScope and Subtask

  • delimited continuation


Why Take This Course?

Learn practical, hands-on skills to build robust, concurrent Java applications
Stay up to date with modern Java features, including Virtual Threads
Improve your ability to design thread-safe and scalable codeBuild real simulations to apply what you learn immediately

Whether you're a beginner or someone brushing up on concurrency, this course will challenge and empower you to think differently about performance and scalability.

Join now and unlock the power of modern multithreaded programming in Java!
Let’s dive in and write code that truly scales.

Who this course is for:

  • This course is meant for students who want to get a good grasp on multithreading in java or just want a quick refresher