Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Multithreading and Parallel Computing in Java
Introduction
Introduction (1:40)
### MULTITHREADING ###
Multithreading section
Multithreading Theory
Processes and threads introduction (9:45)
What is time-slicing algorithm? (4:26)
Benefits of multithreading (3:59)
Downside of multithreading (4:15)
Thread lifecycles (3:47)
Threads Manipulation
Sequential processing (4:22)
Starting threads - Runnable (6:28)
Starting threads - Thread class (5:27)
Runnable interface and Thread class
Wait for threads to finish - join (4:34)
Daemon threads and user threads (8:52)
Thread priority and Java Thread Scheduler (7:22)
Inter-Thread Communication
Memory management of threads (3:27)
Synchronization (7:25)
Problems with synchronization (9:40)
Locking with custom objects (3:20)
What are re-entrant locks?
Wait and notify (8:11)
Producer and consumer (10:40)
Locks (8:13)
Producer consumer with locks (6:21)
Locks and synchronization (1:28)
Multithreading Concepts
Volatile (8:00)
Stopping a thread (1:17)
Deadlock and livelock (4:32)
Deadlock example (6:07)
Livelock example (6:15)
Atomic variables (5:54)
What are semaphores? (3:47)
Mutexes and semaphores (5:25)
Semaphores example (6:55)
Mutex and binary semaphore
Creating Threads with Executors
Why to use thread pools? (4:48)
Executors example - SingleThreadExecutor (5:19)
Executors example - FixedThreadPools (4:11)
Executors example - ScheduledExecutor (3:19)
Stopping executors (4:52)
What is a Callable interface and Future object? (3:21)
Callable and future example (7:47)
Concurrent Collections
What is the collections framework? (4:02)
Collections synchronization (6:25)
Latch (9:25)
Cyclic barrier (11:57)
Blocking queue (7:44)
Delay queue (10:38)
Priority queue (11:14)
Concurrent maps (10:07)
Exchanger (10:38)
CopyOnWriteArrays (7:34)
Multithreading Exercise I - Dining Philosophers Problem
Dining philosophers problem I - the problem (2:29)
Dining philosophers problems II - constants (3:42)
Dining philosophers problems III - chopstick (7:56)
Dining philosophers problems IV - philosopher (10:48)
Dining philosophers problems IV - philosopher (11:04)
Dining philosophers problems VI - running the simulation (3:20)
Multithreading Exercise II -Students Library Problem
Student library simulation I - the problem (1:43)
Student library simulation II - constants (1:58)
Student library simulation III - book (6:05)
Student library simulation IV - student (4:22)
Student library simulation V - lock() and tryLock() (2:45)
Student library simulation VI - running the simulation (4:50)
### PARALLEL ALGORITHMS ###
What is parallel computing? (11:28)
Parallelization
Sequential merge sort introduction (8:50)
Sequential merge sort implementation (14:54)
Merge sort and stack memory visualization (7:46)
Parallel merge sort implementation (10:00)
Running time comparison of merge sort implementations (6:32)
Sum problem introduction (3:36)
Sum problem - sequential approach (3:09)
Sum problem - parallel implementation (11:53)
Running time comparison of sum operations (5:02)
Fork-Join Framework
What is the Fork-join framework? (7:47)
Fork-join framework simple example - RecursiveAction (12:52)
Fork-join framework simple example - RecursiveTask (8:26)
Thread optimization (4:47)
Maximum finding - the algorithm (9:53)
Maximum finding - running the application (5:16)
Merge sort revisited I (5:32)
Merge sort revisited II (6:45)
Using Java's Stream API
What is the Stream API? (3:41)
Streams with numbers (8:49)
Streams with strings (3:41)
Collections and streams (4:35)
Streams with custom objects - part 1 (9:22)
Streams with custom objects - part 2 (6:03)
External and internal iteration (5:45)
Processing files with streams (4:35)
Short-circuiting and loop fusion (5:33)
map() and flatMap() (9:40)
Optionals and other important concepts (11:00)
OptionalInt, OptionalFloat and OptionalDouble (3:22)
allMatch(), noneMatch(), findFirst() and findAny() (6:14)
Parallelization - example #1 (4:44)
Parallelization - example #2 (8:17)
Parallelization - example #3 (8:59)
MapReduce and Parallelization
MapReduce introduction - basics (5:57)
MapReduce introduction - example (6:05)
MapReduce and Fork-Join (1:46)
Course Materials (DOWNLOADS)
Source code
Slides
MapReduce introduction - example
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock