Mô tả

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 develop little programs as show-cases for multithreading: the dining-philosopher problem and 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

  • locks

  • 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

Section 6 - Executors and ExecutorServices:

  • executors

  • executor services

Section 6 - Concurrent Collections:

  • synchronization with Collections

  • latches

  • cyclic barriers

  • delay and priority queues

  • concurrent HashMaps

  • CopyOnWriteArrayLists

Section 7 -  Simulations:

  • dining philosophers problem

  • library problem

Section 8 - Parallel Algorithms:

  • what is parallel computing

  • parallel merge sort

  • parallel algorithms

Section 9 - Fork-Join Framework

  • Fork-Join framework

  • maximum finding in parallel manner

Section 10 - Stream API

  • the Stream API explained with examples

  • sequential streams and parallel streams

Section 11 - BigData and MapReduce:

  • what is MapReduce

  • MapReduce and Fork-Join framework

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

Bạn sẽ học được gì

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

Understand the Fork-Join Framework

Understand Stream API

Yêu cầu

  • Basic Java (inheritance, object oriented programming)

Nội dung khoá học

17 sections

Introduction

1 lectures
Introduction
01:43

### MULTITHREADING ###

1 lectures
Multithreading section
00:05

Multithreading Theory

6 lectures
Processes and threads introduction
09:45
What is time-slicing algorithm?
04:26
Benefits of multithreading
03:59
Downside of multithreading
04:15
Thread lifecycles
03:47
Multithreading Theory Quiz
3 questions

Threads Manipulation

8 lectures
Sequential processing
04:22
Starting threads - Runnable
06:28
Starting threads - Thread class
05:07
Runnable interface and Thread class
00:21
Wait for threads to finish - join
04:34
Daemon threads and user threads
08:51
Thread priority and Java Thread Scheduler
07:22
Threads Manipulation Quiz
4 questions

Inter-Thread Communication

12 lectures
Memory management of threads
03:27
Synchronization
07:25
Problems with synchronization
09:40
Locking with custom objects
03:20
What are re-entrant locks?
00:46
Wait and notify
08:11
What is the difference between wait and sleep?
00:27
Producer and consumer
10:40
Locks
08:13
Producer consumer with locks
06:21
Locks and synchronization
01:28
Inter-Thread Communication Quiz
5 questions

Multithreading Concepts

11 lectures
Volatile
08:00
Stopping a thread
01:16
Deadlock and livelock
04:32
Deadlock example
06:07
Livelock example
06:15
Atomic variables
05:54
What are semaphores?
03:47
Mutexes and semaphores
05:25
Semaphores example
06:55
Mutex and binary semaphore
00:36
Multithreading Concepts Quiz
3 questions

Creating Threads with Executors

8 lectures
Why to use thread pools?
04:48
Executors example - SingleThreadExecutor
05:19
Executors example - FixedThreadPools
04:11
Executors example - ScheduledExecutor
03:19
Stopping executors
04:52
What is a Callable interface and Future object?
03:21
Callable and future example
07:47
Executors Quiz
5 questions

Concurrent Collections

11 lectures
What is the collections framework?
04:03
Collections synchronization
06:23
Latch
09:25
Cyclic barrier
11:57
Blocking queue
07:44
Delay queue
10:38
Priority queue
11:14
Concurrent maps
10:07
Exchanger
10:38
CopyOnWriteArrays
07:34
Concurrent Collections Quiz
2 questions

Multithreading Exercise I - Dining Philosophers Problem

6 lectures
Dining philosophers problem I - the problem
02:29
Dining philosophers problems II - constants
03:42
Dining philosophers problems III - chopstick
07:56
Dining philosophers problems IV - philosopher
10:48
Dining philosophers problems V - starting the threads
10:20
Dining philosophers problems VI - running the simulation
03:20

Multithreading Exercise II -Students Library Problem

6 lectures
Student library simulation I - the problem
01:43
Student library simulation II - constants
01:58
Student library simulation III - book
06:05
Student library simulation IV - student
04:22
Student library simulation V - lock() and tryLock()
02:45
Student library simulation VI - running the simulation
04:50

### PARALLEL ALGORITHMS ###

1 lectures
What is parallel computing?
11:28

Parallelization

10 lectures
Sequential merge sort introduction
08:50
Sequential merge sort implementation
14:54
Merge sort and stack memory visualization
07:46
Parallel merge sort implementation
10:00
Running time comparison of merge sort implementations
06:32
Sum problem introduction
03:36
Sum problem - sequential approach
03:09
Sum problem - parallel implementation
11:53
Running time comparison of sum operations
05:02
Parallelization Quiz
3 questions

Fork-Join Framework

12 lectures
What is the Fork-join framework?
07:47
Fork-join framework simple example - RecursiveAction
12:51
Exercise - printing integers
00:14
Solution - printing integers
00:28
Fork-join framework simple example - RecursiveTask<T>
08:26
Exercise - Fibonacci-numbers
00:09
Solution - Fibonacci-numbers
00:12
Thread optimization
04:47
Maximum finding - the algorithm
09:53
Maximum finding - running the application
05:16
Merge sort revisited I
05:32
Merge sort revisited II
06:45

Using Java's Stream API

20 lectures
What is the Stream API?
03:41
Streams with numbers
08:49
Streams with strings
03:41
Collections and streams
04:35
Streams with custom objects - part 1
09:22
Streams with custom objects - part 2
06:03
Exercise - filtering
00:12
Solution - filtering
00:09
External and internal iteration
05:45
Processing files with streams
04:35
Short-circuiting and loop fusion
05:33
map() and flatMap()
09:40
Exercise - mapping
00:10
Solution - mapping
00:07
Optionals and other important concepts
11:00
OptionalInt, OptionalFloat and OptionalDouble
03:22
allMatch(), noneMatch(), findFirst() and findAny()
06:14
Parallelization - example #1
04:44
Parallelization - example #2
08:17
Parallelization - example #3
08:59

Java 21 and Virtual Threads

16 lectures
What are virtual threads?
07:46
Understanding virtual threads and OS threads
09:26
Installing Java 21
02:19
Creating virtual threads
08:31
Comparison: platform vs virtual threads
04:36
Using ExecutorService to create virtual threads
04:23
Virtual thread pinning
03:33
Understanding Futures
08:55
Understanding CompletableFutures I
11:37
Understanding CompletableFutures II
06:41
What is structured concurrency?
04:06
StructuredTaskScope and Subtask
14:52
ShutdownOnFailure
09:16
ShutdownOnSuccess
05:21
Continuations and coroutines
04:23
Scaling with virtual threads
03:42

MapReduce and Parallelization

4 lectures
MapReduce introduction - basics
05:57
MapReduce introduction - example
06:05
MapReduce and Fork-Join
01:46
MapReduce Quiz
1 question

Course Materials (DOWNLOADS)

1 lectures
Course materials
00:02

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.