Multithreading and Parallel Computing in Java
4.4 (1,675 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
12,002 students enrolled

Multithreading and Parallel Computing in Java

Multithreading and Concurrent Programming, Parallel Computation and MapReduce in Java
Bestseller
4.4 (1,675 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
12,001 students enrolled
Created by Holczer Balazs
Last updated 4/2019
English
English [Auto]
Current price: $139.99 Original price: $199.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 6.5 hours on-demand video
  • 3 articles
  • 1 downloadable resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Understand basic concurrency
  • Understand the basics of multithreading
  • Understand parallel processing
  • Able to use the concepts in real life scenarios
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 21th 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:

  • 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 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
Course content
Expand all 70 lectures 06:28:21
+ Multithreading Theory
5 lectures 16:43
What is time-slicing algorithm?
02:41
Benefits of multithreading
02:20
Downside of multithreading
02:46
Thread life cycle in Java
02:44
+ Basic Multithreading
17 lectures 01:48:00
Starting threads I - Runnable
06:18
Starting threads II - Thread class
07:24
Join
04:32
Volatile
07:43
Deadlock
04:03
Synchronized I
05:59
Synchronized blocks
08:16
Wait and notify
08:10
Producer and consumer
10:00
Locks
06:14
Producer consumer with locks
06:22
Locks VS synchronization
02:15
Semaphores
04:14
Semaphores II
07:19
Executors
06:58
Callable and future
07:40
+ Concurrent Collections
7 lectures 01:03:49
Latch
09:06
Cyclic barrier
09:16
Blocking queue
08:52
Delay queue
09:09
Priority queue
10:29
Concurrent maps
07:25
Exchanger
09:32
+ Dining Philosopher Problem
6 lectures 35:39
Dining philosopher problem I - the problem
04:29
Dining philosopher problems II - constants
03:04
Dining philosopher problems III - chopstick
06:54
Dining philosopher problems IV - philosopher
10:00
Dining philosopher problems V - starting the threads
06:57
Dining philosopher problems VI - running the simulation
04:15
+ Students Library Simulation
6 lectures 16:19
Student library simulation I - the problem
01:24
Student library simulation II - constants
01:50
Student library simulation III - book
03:16
Student library simulation VI - student
02:57
Locking: locks () and tryLock()
02:40
Student library simulation V - running the simulation
04:12
+ Miner Game Simulation
5 lectures 17:24
Miner game implementation I
01:43
Miner game implementation II
03:55
Miner game implementation III
02:15
Miner game implementation IV
03:35
Miner game implementation V
05:56
+ Parallel Algorithms
11 lectures 01:02:05
Parallel methods versus multithreading
08:05
Merge sort introduction I
06:50
Merge sort introduction II
08:54
Sequential merge sort I
06:26
Parallel merge sort
06:47
Comparing sorting implementations
04:45
UPDATE: comparing merge sort algorithms
00:42
Sum problem introduction
02:44
Sum problem - sequential approach
04:28
Sum problem - parallel implementation
08:26
Comparing sum implementations
03:58
+ Fork-Join Framework
7 lectures 51:36
Fork-join framework introduction
05:44
Fork-join framework simple example - RecursiveAction
09:14
Fork-join framework simple example - RecursiveTask<T>
07:56
Maximum finding - the algorithm
08:17
Maximum finding - running the application
06:54
Fork-join merge sort I
08:31
Fork-join merge sort II
05:00
+ MapReduce and Parallelization
3 lectures 13:56
MapReduce introduction - basics
06:01
MapReduce introduction - example
06:07
MapReduce and Fork-Join
01:48