Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Mastering Virtual Threads in Java (v1.1)
0. Welcome
Copyright Notice
0.1 Welcome (5:20)
0.2. Slides
0.3. Exercises
1. Introduction to Virtual Threads
1. Introduction to Virtual Threads (7:38)
1.1. Exercise 1.1 walkthrough (1:21)
1.2. Daemon Threads (1:19)
1.2.1. Exercise 1.2. Walkthrough (1:10)
1.3. Virtual Thread Attributes (3:02)
1.3.1. Exercise Walkthrough 1.3 (3:55)
1.4. Carrier Threads (5:49)
1.4.1. Exercise Walkthrough 1.4 (2:42)
1.5. Thread Builders (10:09)
1.6. Timers (6:15)
1.6.1. Exercise Walkthrough 1.5. (7:11)
1.7. java.lang.ref.Cleaner (2:34)
1.8. GC Roots (5:49)
1.8.1. Exercise 1.6. Walkthrough (6:26)
1.9. Parallel vs Concurrent Computing (4:21)
1.10.1. Best Deal Search (29:40)
1.10.2. Using CompletableFuture (6:27)
1.10.3. Using Virtual Threads (2:12)
1.11. States of Virtual vs Platform Threads (4:48)
1.11.1. java.lang.Thread States (2:14)
1.11.2. Virtual Thread States (16:10)
1.11.3. Exercise 1.7 Walkthrough (24:23)
2. Changes in java.util.concurrent
2. Changes in java.util.concurrent (1:07)
2.1. AutoCloseable ExecutorService (2:55)
2.2. Using ExecutorService non-structured (2:07)
2.3. Using ExecutorService With Deadline (2:28)
2.4. ManagedBlocker (1:26)
2.5. Pooling vs Virtual Threads (0:19)
2.6. Locking in Virtual Threads (1:10)
2.6.1. Object.wait() in Java 21 (0:29)
2.6.2. Replace with ReentrantLock and Condition (1:28)
2.6.3. Blocking while synchronized - pinned (0:57)
2.6.4. Converting synchronized to ReentrantLock (2:13)
2.6.5. Java 24 - JEP 491 (3:54)
2.7. Exercises description (1:21)
2.7.1. Exercise 2.1. Walkthrough (7:13)
2.7.1. Exercise 2.2. Walkthrough (16:30)
3. Structured Concurrency
3. Structured Concurrency (2:54)
3.1. The Problem with ad-hoc coding (3:01)
3.2. Unstructured Solution to findOrder (3:37)
3.3. What is Structured Concurrency? (1:17)
3.4. StructuredTaskScope (1:06)
3.5. What StructuredTaskScope gives us (2:09)
3.6. handle() using StructuredTaskScope (1:14)
3.7. Demo of ShutDownOnFailure (14:17)
3.8. Explanation of exercise 3.1. (1:46)
3.8.1. Exercise 3.1. Walkthrough (4:47)
3.9. Restrictions with StructuredTaskScope (1:23)
3.10. Types of StructuredTaskScope - ShutDownOnFailure (2:30)
3.10.1. Exercise 3.2. Description (1:08)
3.10.2. Exercise 3.2. Walkthrough (11:16)
3.11. Types of StructuredTaskScope - ShutDownOnSuccess (3:01)
3.11.1. Exercise 3.3. Walkthrough (2:07)
3.12. Returning Multiple Results (3:32)
3.13. Custom StructuredTaskScopes (2:24)
3.13.1. Exercise 3.4. Walkthrough (4:58)
3.14. Fan-in Scenarios (3:05)
3.14.1. Exercise 3.5. Walkthrough (11:12)
4. Scoped Values
4. Scoped Values (1:00)
4.1. Typical use cases of ThreadLocal (5:29)
4.2. ThreadLocal variables for sharing (1:41)
4.3. Problem with thread locals (2:40)
4.3.1. Lightweight sharing (0:49)
4.3.2. Immutability (0:25)
4.3.3. What does -scoped- mean? (0:33)
4.4. ScopedValue for sharing (2:10)
4.4.1. Migrating to scoped values (0:38)
4.5. ThreadLocal to ScopedValue Exercise Description (0:34)
4.5.1. Exercise 4.1. Walkthrough (8:10)
5. Tips and Tricks
5. Tips and Tricks (0:06)
5.1. Stopping Threads (3:10)
5.1.1. InterruptDemo (18:24)
5.2. Java IO Implementation Rewritten (0:14)
5.3. Cost of old IO Streams (3:15)
5.4. Things to know about Virtual Threads (4:53)
6. Virtual Threading Issues
6. Virtual Threading Issues (1:28)
6.1. Deadlocks in Virtual Threads (5:41)
6.1.1. Exercise 6.1. Walkthrough (9:47)
6.2. Parallel Programming with Loom (8:24)
6.2.1. Exercise 6.2. Walkthrough (20:34)
6.3. Race Conditions (1:12)
7. Conclusion
7. Conclusion (7:47)
Teach online with
1.10.2. Using CompletableFuture
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock