Concurrency, Multithreading and Parallel Computing in Java

Concurrency, Multithreading and Parallel Computing in Java

Multithreading and Concurrent Programming, Parallel Computation and MapReduce in Java + Fork-Join and Stream API

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


  • Basic Java (inheritance, object oriented programming)


This course is about the basics of multithreading and concurrent programming with some parallel concepts. In the 21st century this topic is becoming more and more popular with the advent of Big Data and Machine Learning. We will consider the low level concepts such as threads, synchronization and locks. The second chapter will be about concurrent library: of course there are built in classes and interfaces that we can use when implementing multithreaded applications. Then we develope little programs as show-cases for multithreading: the dining-philosopher problem or the students in library simulation. Last chapter is about parallel computing and MapReduce.

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


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

miner game

Section 6 – Executors and ExecutorServices:


executor services

Section 6 – Concurrent Collections:

synchronization with Collections


cyclic barriers

delay and priority queues

concurrent HashMaps


Section 7 –  Simulations:

dining philosophers problem

library problem

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

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: