
In this lecture, I will give an introduction to the course.
In this lecture, I will cover the prerequisites that are needed for this course.
In this lecture, I will explain the theoretical aspect of what a thread is and its benefits.
In this lecture, we will install the latest java stable LTS java version.
In this lecture, we will set up the code base for this course.
In this lecture, we will code and explore platform threads and understand how it executes the background tasks.
In this lecture, I will explain how a Java thread gets executed by the underlying OS and the internals behind it.
In this lecture, we will code and explore the thread scalability and blocking nature of Java Threads.
In this lecture, we will code and learn about the blocking nature of threads and its effect in the backend web applications.
In this lecture, I will give you all introduction to Virtual threads and learn to code using Virtual Threads.
In this lecture, we will explore the scalability of virtual threads.
In this lecture, I will explain how virtual threads gets executed by the carrier threads.
In this lecture, we will explore the concepts of mounting and unmounting by coding them.
In this lecture, we will learn about the internals of virtual threads and the continuation object that handles the state of the virtual thread behind the scenes.
In this lecture, we will code and learn about pinned virtual threads and how it can be avoided using re-entrant lock.
In this lecture, we will quickly recap the important facts of the Virtual Threads.
In this lecture, I will give you all an overview of different concurrency APIs that got released in java so far.
In this lecture, I will explain the difference between the concurrency and parallelism.
In this lecture, I will give you all an introduction to Future and how to write concurrent code using future.
In this lecture, we will look into a real world implementation of ExecutorService and Future API.
In this lecture, we will look into CompletableFuture and the implementation of productService using CompletableFuture
In this lecture, I will give an introduction to Structured concurrency and the APIs behind it.
In this lecture, we will code and implement the logic of ProductService using shutdownOnFailure policy.
In this lecture, we will code and implement the logic of ProductInfoService using shutdownOnSuccess policy.
In this lecture, we will make an enhancement to add the DeliveryService into the ProductService.
In this lecture, we will set up the simple webserver and make some http calls to interact with it.
In this lecture, we will code the HttpClient for the productInfo service.
In this lecture, we will code the ProductService making real http calls to the other services.
In this lecture, we will learn to use virtual threads along with Future and ExecutorService.
In this lecture, I will explain about the effect of using virtual threads to handle the http request.
In this lecture, we will set up the spring boot apps that are needed for this section.
In this lecture, we will code and learn to configure virtual-threads in the springboot application.
In this lecture, we will set up the app ready to run load testing using apache ab benchmarking tool.
In this lecture, we will compare the performance of the app between traditional spring mvc vs spring mvc using virtual threads.
"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 Course
In 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 Threads
In this section, I will give you all an introduction to Virtual Threads and dive into some detailed concepts.
Concurrency APIs - Threadpools,Future, ExecutorService & CompletableFuture
In 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 Threads
In this section, we will code HTTP Clients and use virtual threads to execute them.
Using Futures with Virtual Threads
In this section, we will learn to use Virtual Threads with Future and ExecutorService.
Build a SpringBoot Application using Virtual Threads
In 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 MVC
Whether 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.