Java Fundamentals – Concurrency with Multithreading

Java Fundamentals – Concurrency with Multithreading

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 3h 20m | 352 MB

Today most programs have a concurrent element and knowledge of concurrency is vital. This course will teach you how to use the Java libraries to achieve concurrency via multithreading.

Today most programs have a concurrent element and knowledge of concurrency is vital. In this course Java Fundamentals – Concurrency with Multithreading, you’ll gain the skills you need to create and work with such software using the Java libraries. This will also form a basis from which to learn more advanced frameworks. Just because this is a fundamentals course, it doesn’t mean it’s solely for Java novices. A wide range of topics will be covered, some fairly advanced, which are appropriate to more seasoned developers. First, you’ll learn how to make a program multithreaded. Next, you’ll learn how to safely communicate and share data between the threads and avoid liveness issues such as deadlock. Finally, you’ll finish this course by looking at thread signaling and thread pools. After completing this module, you should be able to write multithreaded software with ease and be able to confidently discuss the subject in an interview situation.

Table of Contents

01 – Course Overview – Course Overview
02 – Introduction – Welcome
03 – Understanding Threading and Concurrency – Module Introduction
04 – Understanding Threading and Concurrency – Multithreading and Concurrency
05 – Understanding Threading and Concurrency – Multithreading and Caches
06 – Creating and Managing Threads – Introduction to Creating and Managing Threads
07 – Creating and Managing Threads – Creating Threads
08 – Creating and Managing Threads – Sleeping
09 – Creating and Managing Threads – jstack and jconsole
10 – Creating and Managing Threads – Interrupting Threads and Handling InterruptedException
11 – Creating and Managing Threads – Waiting for Threads to Finish (isAlive and join)
12 – Creating and Managing Threads – Handling Exceptions from Threads and ThreadGroup
13 – Creating and Managing Threads – ThreadLocal
14 – Creating and Managing Threads – Why Stop, Suspend, and Resume Are Deprecated
15 – Creating and Managing Threads – Creating and Managing Threads Module Summary
16 – Sharing Memory Across Threads – Introduction to Sharing Memory Across Threads
17 – Sharing Memory Across Threads – Thread Safety and the Java Memory Model
18 – Sharing Memory Across Threads – Examples of Issues with Sharing Unsynchronized Data
19 – Sharing Memory Across Threads – Solving Data Synchronization Issues with Volatile
20 – Sharing Memory Across Threads – Publishing Objects to Share Data
21 – Sharing Memory Across Threads – Other Java Memory Model Guarantees
22 – Sharing Memory Across Threads – Summary of Sharing Memory Across Threads
23 – Understanding Mutexes – Introduction to Mutual Exclusion
24 – Understanding Mutexes – Race Conditions and Critical Sections
25 – Understanding Mutexes – Using synchronized
26 – Understanding Mutexes – Solving Race Conditions Using Latches and Barriers
27 – Understanding Mutexes – Synchronizing on Methods and Preserving Invariants
28 – Understanding Mutexes – Mutexes Summary
29 – Liveness Issues – Preventing Deadlock, Livelock, and Starvation – Introduction Liveness Issues
30 – Liveness Issues – Preventing Deadlock, Livelock, and Starvation – Deadlock
31 – Liveness Issues – Preventing Deadlock, Livelock, and Starvation – Livelock
32 – Liveness Issues – Preventing Deadlock, Livelock, and Starvation – Starvation
33 – Liveness Issues – Preventing Deadlock, Livelock, and Starvation – Liveness Issues Summary
34 – Inter-thread Communication and Signaling – The Need for Signaling
35 – Inter-thread Communication and Signaling – The Producer Consumer Model
36 – Inter-thread Communication and Signaling – Using wait() _ notify() _ notifyAll()
37 – Inter-thread Communication and Signaling – BlockingQueue
38 – Inter-thread Communication and Signaling – Summary
39 – Thread Pools – Introduction to Thread Pools
40 – Thread Pools – Thread Pools’ API
41 – Thread Pools – An Application of Thread Pools – A Monte Carlo simulation
42 – Thread Pools – Using ScheduledThreadPoolExecutor
43 – Thread Pools – Threadpools summary