Leveraging Parallel Streams for Fast Data Processing in Java

Parallelism is an amazing feature brought by the Stream API in Java 8. In this course, you will learn how parallel streams are working under the hood, how to use them to improve the performances of your applications, and when to avoid them.
Course info
Rating
(18)
Level
Intermediate
Updated
Jan 8, 2021
Duration
2h 12m
Table of contents
Course Overview
Introducing Parallelism in the Java Stream API
Getting the Best Performance Gains from Parallel Streams
Analyzing the Fork / Join Implementation of Parallel Streams
Choosing the Right Sources of Data to Efficiently Go Parallel
Description
Course info
Rating
(18)
Level
Intermediate
Updated
Jan 8, 2021
Duration
2h 12m
Description

Along with the implementation of the map / filter reduce algorithm, the Stream API brings an amazing feature: the possibility to conduct the processing of your data in parallel. Going parallel is as simple as calling a parallel() method, something many developers are tempted to do. In this course, Leveraging Parallel Streams for Fast Data Processing in Java, you will learn what is happening under the hood, and how parallelism has been implemented in the Stream API. First, you will see that going parallel may improve the performances of your computations greatly, but may also ruin your application. Next, you will discover how to understand when things are working, which will give you the keys you need to decide when to go parallel and when to stay away from it. Finally, you will analyze the situations where things are not behaving as expected. By the end of this course, you will gain better understanding of parallelism as it is: a complex topic that you can grasp with simple ideas, so that you can use what you will learn immediately.

About the author
About the author

Passionate about programming computers for over 20 years, Jose made his debut in assembler and C, C for SIMD parallel machines before adopting Java as an object-oriented language. Assistant professor in Paris North University for more than 15 years, Jose also brings his expertise to many projects, in various industrial fields.

More from the author
More courses by Jose Paumard
Section Introduction Transcripts
Section Introduction Transcripts

Course Overview
Hello, my name is José. I'm a Java champion and a JavaOne Rock Star. I am talking to you from Paris, where I live, and I'm very glad to present my new course, Leveraging Parallel Streams for Fast Data Processing in Java. One of the most exciting features of the stream API is its ability to process data in parallel by just adding this simple parallel call on any stream. This simplicity hides, in fact, a lot of complexity. Parallel streams are built on top of the fork/join framework, which needs to efficiently split your data. Then use your threads to do the computations, and a then use associative reductions to join them. That's many technical steps that may become traps if not used properly. This course shows you all those traps with benchmarks and analysis and a shows you how to bench your own stream processing using JMH. Using parallel streams may speed up your computations, but it also may ruin them, and this is what you will learn in this course, how to use parallel streams wisely. I am very excited to show you all this, and I cannot wait to see how you will use parallelism in your applications to get the information you need from your data faster.