Multithreading,Parallel & Asynchronous Coding In Modern Java
Last updated 8/2024
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English (US) | Size: 1.53 GB | Duration: 6h 51m
Last updated 8/2024
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English (US) | Size: 1.53 GB | Duration: 6h 51m
Learn to use Multithreading in Java using the ParallelStreams API and CompletableFuture API using the Hands-On approach.
What you'll learn
Learn to write code that provides faster results using the modern apis in Java
Learn to write Asynchronous/Parallel Programming code using Functional Style APIs
Learn to write parallel programming code using ParallelStreams
Learn to write Asynchronous code using Completablefuture
Learn to write code that uses all the cores in your machine
Techniques and patterns that uses the modern concurrency apis to improve the overall performance of the code
Concurrency vs Parallelism
Requirements
Prior Java Experience
Java 11 or higher
Intellij or Eclipse or Similar IDE
Description
This course is structured to give you the theoretical and coding experience writing parallel and asynchronous code using ParallelStreams and CompletableFuture. You will become very Fluent in writing Asynchronous/Parallel Code in Java once you complete this course.If you are looking forward to writing High Performant Java code then this is the right course for you. This course covers the latest features that are available in Modern Java that helps you write fast performing code.This course explicitly covers the following APIs in Modern Java:ParallelStreamsCompletableFutureGetting Started with Parallel and Asynchronous programmingIn this section, I will explain about the need to learn about the Parallel and Asynchronous programming concepts in todays software developmentBriefly talks about the Evolution of Concurrency APIs in JavaExplain about the difference between the Concurrency and ParallelismCourse Project SetUpIn this section, we will set up the base project for the whole course.Threads, Future, ForkJoin FrameWork, and its LimitationsIn this section, I will explain about Threads, Future API, ForkJoin FrameWork and its limitationsI will show a demonstration of all these concepts using code examples.The limitations that are covered in the course sets the stage for ParallelStreams and CompletableFuture API Getting started with Parallel StreamsIn this section, I will introduce you all to parallel streams and implement a simple example using Parallel StreamsIntroduction to Streams API and ParallelStreamsImplement a simple example using ParallelStreams Write unit tests to test the ParallelStreams using JUnit5Build Retail Checkout Application using Parallel StreamsIn this section, we will build a simple Backend Retail Checkout application using Parallel StreamsParallel Streams - Under the hoodIn this section, I will cover the internals of parallel streams.I will explain about how ParallelStreams work under the hoodCompare the performance of different collections when it's used against the ParallelStreamsUsage of Collect vs Reduce terminal operators in Streams API and Parallel StreamsOperators that can cause poor performance when it's used against ParallelStreamsParallel Streams - Threading Model & Common ForkJoin PoolIn this section, I will explain about the execution engine behind the parallel StreamsCovers the Threading model that's utilized behind the scenes by ParallelStreamsConfiguring the ThreadPool for Faster PerformanceParallel Streams - SummaryThis section summarizes everything that's discussed above that's related to ParallelStreamsCovers the scenarios on "when to use/when not to use" ParallelStreamsCompletableFutureIn this section, I will introduce you all to the CompletableFuture APIExploring CompletableFuture FunctionsIn this section, I will code and explore the functions that are part of the CompletableFuture APIExplore some of the key functions that are part of the CompletableFuture APIWrite unit tests to test the CompletableFuture using JUnit5Build a ProductService application using CompletableFutureIn this section, we will implement the ProductService example using CompletableFutureThis section will give you all an idea about how to use CompletableFuture in a real-world scenarioCombining Streams and CompletableFutureIn this section, I will show you the techniques to combine Streams with CompletableFuture.I will explore this by adding an enhancement to the ProductService which is the InventoryServiceExplore the different options available to integrate Streams API with CompletableFutureException Handling/Recovery in CompletableFutureIn this section, I will introduce you to to the techniques/options that are to handle/recover exceptions using CompletableFutureI will explain and cover different exception handling and recovery techniques that are available in CompletableFuturehandle()exceptionally()whenCompleteI will compare and explain the difference of behaviors between them and provide recommendation on using different handlers for different use cases.Implement Exception Handling/Recovery in ProductServiceIn this lecture, I will show you techniques to implement the exception handling techniques in our ProductServiceImplement the exception handling and recovery technique in ProductInfoService, ReviewService and InventoryServiceCompletableFuture & ThreadPoolIn this section, I will cover the ThreadPool and the different options that are available to use with CompletableFutureI will cover the default CommonForkJoin ThreadPool thats used to execute the CompletableFutureI will cover the techniques to use a Custom ThreadPool that can be used to execute the CompletableFutureThreads and Async Overloaded Methods in CompletableFutureI will cover the threads that are used to execute CompletableFutureI will show the technique to use Async() methods that's part of the CompletableFuture API to change the execution of threads in the CompletableFuture PipelineBuild RestFul API Client using Spring WebClient and CompletableFutureIn this section, I will build a restful api client using Spring WebClient and Integrate with CompletableFuture to improve the performance of the api calls.I will code and demonstrate how to use Spring WebClient to build a rest clientI will code and demonstrate the technique to integrate RestAPI calls with CompletableFuture to improve the overall performance of the code.Handle Multiple CompletableFutures - anyOf(), allOf()In this section, I will code and explain about the techniques to handle multiple CompletableFutures.I will code and explore the allOf() function thats part of the CompletableFuture APII will code and explore the anyOf() function thats part of the CompletableFuture APIBy the end of this course, you will have a complete understanding of ParallelStreams and CompletableFuture and how to use them in your projects.
Who this course is for:
Java Developers curious to write parallel programming code,Java Developers curious to write Asynchronous programming code,Java Developers interested in improving the knowledge about the Modern Concurrency APIs,Java Developers interested in learning the ParallelStreams API,Java Developers interested in learning the CompletableFuture API