Multithreading and Parallel Computing in Java

Multithreading and Parallel Computing in Java

English | MP4 | AVC 1280×720 | AAC 48KHz 2ch | 6 Hours | 913 MB

Multithreadin and concurrent programming, parallel computation in java

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.

What You Will Learn

  • Understand basic concurrency
  • Understand the basics of multithreading
  • Understand parallel processing
  • Able to use the concepts in real life scenarios
Table of Contents

Introduction
1 Introduction

Multithreading Theory
2 Processes and threads introduction
3 Benefits of multithreading
4 Downside of multithreading
5 Thread life cycle in Java

Basic Multithreading
6 Sequential processing
7 Starting threads I – Runnable
8 Starting threads II – Thread class
9 Join
10 Volatile
11 Deadlock
12 Synchronized I
13 Synchronized blocks
14 Wait and notify
15 Producer and consumer
16 Locks
17 Producer consumer with locks
18 Locks VS synchrnoization
19 Semaphores
20 Semaphores II
21 Executors
22 Callable and future

Concurrent Collections
23 Latch
24 Cyclic barrier
25 Blocking queue
26 Delay queue
27 Priority queue
28 Concurrent maps
29 Exchanger

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

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 Locking locks and tryLock
41 Student library simulation V – running the simulation

Miner Game Simulation
42 Miner game implementation I
43 Miner game implementation II
44 Miner game implementation III
45 Miner game implementation IV
46 Miner game implementation V

Parallel Algorithms
47 Parallel methods versus multithreading
48 Merge sort introduction I
49 Merge sort introduction II
50 Sequential merge sort I
51 Parallel merge sort
52 Comparing sorting implementations
53 Sum problem introduction
54 Sum problem – sequential approach
55 Sum problem – parallel implementation
56 Comparing sum implementations

Fork-Join Framework
57 Fork-join framework introduction
58 Fork-join framework simple example – RecursiveAction
59 Fork-join framework simple example – RecursiveTaskT
60 Maximum finding – the algorithm
61 Maximum finding – running the application
62 Fork-join merge sort I
63 Fork-join merge sort II

Course Material
64 Slides
65 Source code
66 Discounted coupon codes for other courses