Multithreading,Parallel & Asynchronous Coding in Modern Java

Learn to use Multithreading in Java using the ParallelStreams API and CompletableFuture API using the Hands-On approach.

4.55 (1502 reviews)
Udemy
platform
English
language
Programming Languages
category
Multithreading,Parallel & Asynchronous Coding in Modern Java
12,362
students
7 hours
content
Mar 2024
last update
$84.99
regular price

What you will 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

Why take this course?

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:

  • ParallelStreams

  • CompletableFuture

Getting Started with Parallel and Asynchronous programming

  • In this section, I will explain about the need to learn about the Parallel and Asynchronous programming concepts in todays software development

  • Briefly talks about the Evolution of Concurrency APIs in Java

  • Explain about the difference between the Concurrency and Parallelism

Course Project SetUp

  • In this section, we will set up the base project for the whole course.

Threads, Future, ForkJoin FrameWork, and its Limitations

  • In this section, I will explain about Threads, Future API, ForkJoin FrameWork and its limitations

  • I 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 Streams

  • In this section, I will introduce you all to parallel streams and implement a simple example using Parallel Streams

  • Introduction to Streams API and ParallelStreams

  • Implement a simple example using ParallelStreams 

  • Write unit tests to test the ParallelStreams using JUnit5

Build Retail Checkout Application using Parallel Streams

  • In this section, we will build a simple Backend Retail Checkout application using Parallel Streams

Parallel Streams - Under the hood

  • In this section, I will cover the internals of parallel streams.

  • I will explain about how ParallelStreams work under the hood

  • Compare the performance of different collections when it's used against the ParallelStreams

  • Usage of Collect vs Reduce terminal operators in Streams API and Parallel Streams

  • Operators that can cause poor performance when it's used against ParallelStreams

Parallel Streams - Threading Model & Common ForkJoin Pool

  • In this section, I will explain about the execution engine behind the parallel Streams

  • Covers the Threading model that's utilized behind the scenes by ParallelStreams

  • Configuring the ThreadPool for Faster Performance

Parallel Streams - Summary

  • This section summarizes everything that's discussed above that's related to ParallelStreams

  • Covers the scenarios on "when to use/when not to use" ParallelStreams

CompletableFuture

  • In this section, I will introduce you all to the CompletableFuture API

Exploring CompletableFuture Functions

  • In this section, I will code and explore the functions that are part of the CompletableFuture API

  • Explore some of the key functions that are part of the CompletableFuture API

  • Write unit tests to test the CompletableFuture using JUnit5

Build a ProductService application using CompletableFuture

  • In this section, we will implement the ProductService example using CompletableFuture

  • This section will give you all an idea about how to use CompletableFuture in a real-world scenario

Combining Streams and CompletableFuture

  • In 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 InventoryService

  • Explore the different options available to integrate Streams API with CompletableFuture

Exception Handling/Recovery in CompletableFuture

  • In this section, I will introduce you to to the techniques/options that are to handle/recover exceptions using CompletableFuture

  • I will explain and cover different exception handling and recovery techniques that are available in CompletableFuture

    • handle()

    • exceptionally()

    • whenComplete

  • I 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 ProductService

  • In this lecture, I will show you techniques to implement the exception handling techniques in our ProductService

  • Implement the exception handling and recovery technique in  ProductInfoService, ReviewService and  InventoryService

CompletableFuture & ThreadPool

  • In this section, I will cover the ThreadPool and the different options that are available to use with CompletableFuture

  • I will cover the default CommonForkJoin ThreadPool thats used to execute the CompletableFuture

  • I will cover the techniques to use a Custom ThreadPool that can be used to execute the CompletableFuture

Threads and Async Overloaded Methods in CompletableFuture

  • I will cover the threads that are used to execute CompletableFuture

  • I will show the technique to use Async() methods that's part of the CompletableFuture API to change the execution of threads in the CompletableFuture Pipeline

Build RestFul API Client using Spring WebClient and CompletableFuture

  • In 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 client

  • I 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 API

  • I will code and explore the anyOf() function thats part of the CompletableFuture API

By the end of this course, you will have a complete understanding of ParallelStreams and CompletableFuture and how to use them in your projects.

Reviews

David
November 8, 2023
Explaining the topics and the underneath functioning of each pattern before jumping of the code is the perfect way to ensure the code is understood. Outstanding way of setting up a coding course
Martin
November 5, 2023
Instructor is very knowledgeable on the topics and the course itself is awesome. One star less for the naming of methods and fields and the excessive copying of code. That gets irritating over time and drains the focus.
Tuyen
September 1, 2023
Not expected! He just talking about stream API. Maybe, this course should rename to "Stream API implementation"
Sulaiman
August 23, 2023
I was made to believe in the beginning of this course that, this is for experienced developers. I am experienced and have worked on asynchronous java computations from scratch using spring boot, for quite a while now and I thought I might get some new/complex java asynchronous concepts for learning, but unfortunately the course is very basic for an experienced developer in my opinion so far, and I was waiting and expecting for such concepts throughout the course. The course author must not mislead his customers with such misapprehension. And that is why, I have given this course such a rating.
M.D.
August 12, 2023
it was good till half of the lecture, with good explanations but after half show, it become just like to finish, with not much conceptual explanation properly.
Gautam
July 31, 2023
this course is only focusing on how to use the java-8 method like .parallelStream() and .stream() so far
Gaurav
July 22, 2023
Half of the time instructor is advertising his own courses during lectures, then the content is not up to the mark.
Jasween
July 10, 2023
The course is very well structured. These concepts are always hard to understand but the author has done the commendable job and has made it easier to grasp these concepts. Highly recommend this course.
Joginder
June 27, 2023
This is one of the best concurrency courses there in Udemy, with no unnecessary theory, detailed explanation with code, and their JUnit test cases. Thank you for sharing your knowledge
Anonymized
June 10, 2023
It's a good course with great hands-on examples and explained in-detailed about the parallel processing implementation.
Nahuel
June 6, 2023
Es un curso excelente. Muy didáctivo y comprensible, sin caer en repeticiones y sin necesidad de incurrir en temas básicos para dar contexto. It is an excellent course. Very didactic and understandable, without falling into repetitions.
Sudipta
April 30, 2023
Extraordinary!! How simply you have explained the most complex topics in depth, with appropriate examples. Never seen such a course or instructor. This is the best one so far. Thank you very much. Would you kindly mention if there are any other courses by you?
Viktor
January 5, 2023
It was really helpful. But if you show how use CompletableFuture with Spring I would apreciate some examples to use CompletebleFuture in Spring application. When you use some spring webapp and with some request you need to call to few services for example with rest. If is better tu use ForkJoinPool or use Pool from Spring and this things.
Alexander
November 24, 2022
The course is a good resource to learn and practice with CompletableFutures and parallel streams. Many things got clearer for me after this course. I'd like to see more real-world examples here, but this course deserves 5 stars in my opinion. Here you can find a bit more about CompletableFutures - https://youtu.be/-MBPQ7NIL_Y.
Kiran
October 24, 2022
Amazing course... As a microservices developer myself, I can say that you get all the info on parallelism, concurrency and futures

Charts

Price

Multithreading,Parallel & Asynchronous Coding in Modern Java - Price chart

Rating

Multithreading,Parallel & Asynchronous Coding in Modern Java - Ratings chart

Enrollment distribution

Multithreading,Parallel & Asynchronous Coding in Modern Java - Distribution chart
3046762
udemy ID
4/24/2020
course created date
11/7/2020
course indexed date
Bot
course submited by