Modern Java - Multithreading In Java Using Virtual Threads
Published 2/2024
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 1.68 GB | Duration: 3h 15m
Published 2/2024
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 1.68 GB | Duration: 3h 15m
A Complete Modern Concurrency course to learn everything about Virtual Threads,Structured Concurrency and more.
What you'll learn
You will learn how to harness the power of Virtual Threads to create highly scalable and efficient Java applications.
What are Platform Threads and the limitations attached to it ?
Learn about Virtual Threads and how to work with them by coding it.
Learn about the advantages and internals of virtual threads.
Learn to launch one million virtualthreads.
Learn to use Structured Concurrency API to implement business logic.
HTTP calls using Virtual Threads.
Build a SpringBoot Application using Virtual Threads.
Compare the performance of Platform Threads vs Virtual Threads in a Springboot App using Apache "ab" benchmarking tool.
Use Virtual Threads by building hands-on projects and real world examples.
Requirements
Prior Java Experience
Java 21 or higher
Intellij or Eclipse or Similar IDE
Description
"Modern Java - Multithreading in Java using Virtual Threads" is a comprehensive course designed to equip Java developers with advanced skills in parallel programming. In this course, you will delve into the intricacies of multithreading in Java, exploring the latest advancements with Virtual Threads.You will learn how to harness the power of Virtual Threads to create highly scalable and efficient Java applications. Through hands-on projects and real-world examples, you will master techniques for managing concurrency, synchronizing threads, and avoiding common pitfalls in multithreaded programming.Getting Started With the CourseIn this section, I will give you all an introduction to the course and what to expect from this course.Getting Started with Java Threads [Platform Threads]In this section, I will give you all an introduction to Java Threads and its limitations.Getting Started with Virtual ThreadsIn this section, I will give you all an introduction to Virtual Threads and dive into some detailed concepts.Concurrency APIs - Threadpools,Future, ExecutorService & CompletableFutureIn this section, I will cover the concurrency APIs Future and CompletableFuture.Structured Concurrency using Virtual Threads [Preview Feature]In this section, I will cover Structured Concurrency and learn to write business logic using Structured Concurrency.HTTP calls using Virtual ThreadsIn this section, we will code HTTP Clients and use virtual threads to execute them.Using Futures with Virtual ThreadsIn this section, we will learn to use Virtual Threads with Future and ExecutorService.Build a SpringBoot Application using Virtual ThreadsIn this section, we will code and learn to integrate virtual threads with springboot application.Load Test using "ab - Apache HTTP server benchmarking tool"In this section, we will run the load test and compare the performance between Spring MVC using VirtualThreads and Traditional Spring MVCWhether you're a seasoned Java developer looking to enhance your skills or a newcomer interested in mastering the latest trends in Java development, this course will provide you with the knowledge and tools to take your Java multithreading skills to the next level.
Overview
Section 1: Getting Started With the Course
Lecture 1 Course Introduction
Lecture 2 Pre-requestites
Section 2: Course Slides and Source Code
Lecture 3 Course Slides
Lecture 4 Source Code
Section 3: Getting Started with Java Threads [Platform Threads]
Lecture 5 What is a Platform Thread, Why do we need them ?
Lecture 6 Java Installation
Lecture 7 Base Project Setup in Intellij
Lecture 8 Lets Create Platform Threads
Lecture 9 Thread Internals - How it works behind the scenes ?
Lecture 10 Thread Scalability and Blocking nature of Java Threads - Drawbacks
Lecture 11 Effects of Threads in a Backend WebApplication
Section 4: Getting Started with Virtual Threads
Lecture 12 Introduction to Virtual Threads
Lecture 13 Virtual Threads Scalability - Lets Launch 1 million threads
Lecture 14 How VirtualThreads works under the hood? - Mounting/Unmounting Virtual Threads
Lecture 15 Mounting and Unmounting threads in Action
Lecture 16 Virtual Threads - yield() and run() using Continuation API
Lecture 17 Pinned Virtual Threads
Lecture 18 Important Facts about Virtual Threads
Section 5: Future and CompletableFuture
Lecture 19 Evolution of Concurrency APIs in Java
Lecture 20 Parallelism vs Concurrency
Lecture 21 Introduction to Future
Lecture 22 ProductService using Future API and ExecutorService
Lecture 23 CompletableFuture API - ProductService using CompletableFuture API
Section 6: Structured Concurrency using Virtual Threads [Preview Feature]
Lecture 24 Introduction to Structured Concurrency
Lecture 25 ProductService using StructuredTaskScope.ShutdownOnFailure()
Lecture 26 JUnit test for ShutdownOnFailure policy during Exceptions
Lecture 27 ProductInfoService using StructuredTaskScope.ShutdownOnSuccess()
Lecture 28 Add DeliveryService into the ProductService - New Business Requirement
Section 7: HTTP calls using Virtual Threads
Lecture 29 Set Up Simple WebServer
Lecture 30 Build the HttpClient for ProductInfo service
Lecture 31 Lets make real HTTP calls in ProductService using VirtualThreads
Section 8: Using Futures with Virtual Threads
Lecture 32 Virtual Threads + Future & ExecutorService
Section 9: Build a SpringBoot Application using Virtual Threads
Lecture 33 Using Virtual Threads with SpringBoot App
Lecture 34 Setup the Remote Service and Client Application
Lecture 35 Configure the springboot app to use VirtualThreads
Section 10: Load Test using "ab - Apache HTTP server benchmarking tool"
Lecture 36 Set up and run benchMarking using ab
Lecture 37 Load Test - VirtualThreads Spring MVC vs Traditional Spring MVC
Whether you're a seasoned Java developer looking to enhance your skills or a newcomer interested in mastering the latest trends in Java Concurrency.,Java developers who would like to take their knowledge to the next level to write more concise and readable multithreaded code