Multithreading and Parallel Computing in Java

With the importance of big data and data analysis in today’s world, combing through hours of data has become a huge problem that needs to be solved. This is where Multithreading and Parallel computing...

  • All levels
  • English

Course Description

With the importance of big data and data analysis in today’s world, combing through hours of data has become a huge problem that needs to be solved. This is where Multithreading and Parallel computing can help! Multithreading is a simple technique that simplifies and speeds up processes by allowing the use of a single set of code by several processors at different stages of execution. This redu...

With the importance of big data and data analysis in today’s world, combing through hours of data has become a huge problem that needs to be solved. This is where Multithreading and Parallel computing can help! Multithreading is a simple technique that simplifies and speeds up processes by allowing the use of a single set of code by several processors at different stages of execution. This reduces the time it would take to manually write and execute these codes by hand. On the other hand, parallel computing is a type of computation in which many calculations or the execution of processes are carried out simultaneously. What it basically does is divides larger problems into smaller and executable ones that can be solved at the same time.

What you’ll learn
  • Basic multithreading including concepts such as process vs thread, threads, runnables, volatile, join(), notify (), low and high level concurrency
  • Solve complex problems with multithreading such as library project, dining-philosophers problem, etc
  • How to work with different parallel algorithms such as data structure, graph or sorting algorithms and how to boost these algorithms with parallel computing

Covering Topics

1
Section 1 : Introduction

2
Section 2 : Multithreading Theory

3
Section 3 : Basic Multithreading

4
Section 4 : Concurrent Collections

5
Section 5 : Dining Philosopher Problem

6
Section 6 : Students Library Simulation

7
Section 7 : Miner Game Simulation

8
Section 8 : Parallel Algorithms

9
Section 9 : Fork-Join Framework

Curriculum

      Section 1 : Introduction
    1
    Introduction
      Section 2 : Multithreading Theory
    2
    Processes and threads introduction
    3
    Benefits of multithreading Preview
    4
    Downside of multithreading
    5
    Thread life cycle in Java
      Section 3 : Basic Multithreading
    6
    Sequential processing
    7
    Starting threads I - Runnable Preview
    8
    Starting threads II - Thread class
    9
    Join
    10
    Volatile Preview
    11
    Deadlock
    12
    Synchronized I
    13
    Synchronized blocks Preview
    14
    Wait and notify
    15
    Producer and consumer
    16
    Locks Preview
    17
    Producer consumer with locks
    18
    Locks VS synchrnoization
    19
    Semaphores
    20
    Semaphores II
    21
    Executors
    22
    Callable and future
      Section 4 : Concurrent Collections
    23
    Latch Preview
    24
    Cyclic barrier
    25
    Blocking queue
    26
    Delay queue Preview
    27
    Priority queue
    28
    Concurrent maps
    29
    Exchanger
      Section 5 : Dining Philosopher Problem
    30
    Dining philosopher problem I - the problem
    31
    Dining philosopher problems II - constants
    32
    Dining philosopher problems III - chopstick
    33
    Dining philosopher problems IV - philosopher
    34
    Dining philosopher problems V - srtarting the threads
    35
    Dining philosopher problems VI - running the simulation
      Section 6 : Students Library Simulation
    36
    Student library simulation I - the problem
    37
    Student library simulation II - constants
    38
    Student library simulation III - book
    39
    Student library simulation VI - student
    40
    Student library simulation V - running the simulation
      Section 7 : Miner Game Simulation
    41
    Miner game implementation I
    42
    Miner game implementation II
    43
    Miner game implementation III
    44
    Miner game implementation IV
    45
    Miner game implementation V
      Section 8 : Parallel Algorithms
    46
    Parallel methods versus multithreading
    47
    Merge sort introduction I
    48
    Merge sort introduction II
    49
    Sequential merge sort I
    50
    Parallel merge sort
    51
    Comparing sorting implementations
    52
    Sum problem introduction
    53
    Sum problem - sequential approach
    54
    Sum problem - parallel implementation
    55
    Comparing sum implementations
      Section 9 : Fork-Join Framework
    56
    Fork-join framework introduction
    57
    Fork-join framework simple example - RecursiveAction
    58
    Fork-join framework simple example - RecursiveTask
    59
    Maximum finding - the algorithm
    60
    Maximum finding - running the application
    61
    Fork-join merge sort I
    62
    Fork-join merge sort II

Frequently Asked Questions

It is an online tutorial that covers a specific part of a topic in several sections. An Expert teaches the students with theoretical knowledge as well as with practical examples which makes it easy for students to understand.

A Course helps the user understand a specific part of a concept. While a path and E-Degrees are broader aspects and help the user understand more than just a small area of the concept.

A Course will help you understand any particular topic. For instance, if you are a beginner and want to learn about the basics of any topic in a fluent manner within a short period of time, a Course would be best for you to choose.

We have an inbuilt question-answer system to help you with your queries. Our support staff will be answering all your questions regarding the content of the Course.