Multithreading and Parallel Computing in Java

Multithreading and Parallel Computing in Java

image description

What you will learn

  • Understand basic concurrency

  • Understand the basics of multithreading

  • Understand parallel processing

  • Able to use the concepts in real-life scenarios

Curriculum

Section 1: Introduction

Section 2: Multithreading Theory

Section 3: Basic Multithreading

Section 4: Concurrent Collections

Section 5: Dining Philosopher Problem

Section 6: Students Library Simulation

Section 7: Miner Game Simulation

Section 8: Parallel Algorithms

Section 9: Fork-Join Framework

Course Description

Multithreading and Concurrent Programming, Parallel Computation and MapReduce in Java

Requirements

  • Basic Java (inheritance, object-oriented programming)

Description

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 low-level concepts such as threads, synchronization, and locks. The second chapter will be about the concurrent library: of course, there are built-in classes and interfaces that we can use when implementing multithreaded applications. Then we develop little programs as show-cases for multithreading: the dining-philosopher problem or the students in library simulation. The last chapter is about parallel computing and MapReduce

Section 1:

  • theory behind multithreading

  • pros and cons of multithreading

Section 2:

  • multithreading basics

  • Runnable and Thread

  • join, volatile, synchronized, wait and notify

  • producer-consumer model

  • locks, semaphores, and executors

Section 3:

  • concurrent collections

  • latch, cyclic barrier and blocking queues

  • delay queue, priority queue, and concurrent maps

Section 4:

  • multithreaded examples

  • dining philosophers problem

  • library application

  • miner game

Section 5:

  • what is parallel computing

  • parallel merge sort

  • parallel algorithms

Section 6:

  • Fork-Join framework

  • maximum finding in a parallel manner

Section 7:

  • what is MapReduce

  • MapReduce and Fork-Join framework

Thanks for joining my course, let's get started!

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