Java Concurrency and Multithreading in Practice
Course
Online
Description
-
Type
Course
-
Methodology
Online
-
Start date
Different dates available
Improve the performance of your application by using modern Java's multithreading features Multi-core processors are everywhere—from super-computers to mobile devices right in your pocket. That's why a modern developer must know how to leverage the power of multithreading.This course will teach you how to use parallelism and concurrency in Java. You will learn how to parallelize tasks and functions with the ForkJoin framework and Streams. You will also learn how to work with the very popular Reactive Streams recently introduced to Java. Furthermore, you will master concurrent collections and lower-level synchronization techniques with locks.This course conveniently provides quizzes to evaluate your knowledge and help you retain the new concepts.By the end of this practical training course, you will have the knowledge to write elegant programs for multicore computers with enhanced performance and improved responsiveness.About the AuthorTatiana Fesenko is a senior Java developer with a proven track record of bringing products from concept to implementation and a background that includes working in four countries with collaborators from almost all continents in corporate, semi-public, and start-up environments. She is highly driven, thorough, and passionate about technology, and has been professionally using Java for more than 15 years.
Facilities
Location
Start date
Start date
About this course
Build efficient and elegant code with popular parallel Java frameworks, including ForkJoin and Streams
Master Reactive Streams to process data
Explore the existing thread-safe collections and types, to avoid reinventing the wheel
Understand how threads work in Java and how to manage them
Leverage multithreading to increase your application's performance
Reviews
This centre's achievements
All courses are up to date
The average rating is higher than 3.7
More than 50 reviews in the last 12 months
This centre has featured on Emagister for 4 years
Subjects
- Play
- Java
Course programme
- Create your first parallel task - implement the Callable interface for now
- Get an instance of a ForkJoinPool, where the tasks will be executed
- Start the tasks in parallel with invokeAll()
- Create a RecursiveTask
- Spin off subtasks with a fork() method
- Collect results with the join() method
- Go beyond RecursiveTask and explore ForkJoinTask
- Create a RecursiveAction
- Play with different methods on the ForkJoinPool
- Create a task throwing an unchecked exception, see how it affects other subtasks
- Handle a checked exception inside the ForkJoinTask.compute() method
- Cancel a task and see what happens with the execution
- Create your first parallel task - implement the Callable interface for now
- Get an instance of a ForkJoinPool, where the tasks will be executed
- Start the tasks in parallel with invokeAll()
- Create a RecursiveTask
- Spin off subtasks with a fork() method
- Collect results with the join() method
- Go beyond RecursiveTask and explore ForkJoinTask
- Create a RecursiveAction
- Play with different methods on the ForkJoinPool
- Create a task throwing an unchecked exception, see how it affects other subtasks
- Handle a checked exception inside the ForkJoinTask.compute() method
- Cancel a task and see what happens with the execution
- Create your first parallel task - implement the Callable interface for now
- Get an instance of a ForkJoinPool, where the tasks will be executed
- Start the tasks in parallel with invokeAll()
- Create your first parallel task - implement the Callable interface for now
- Get an instance of a ForkJoinPool, where the tasks will be executed
- Start the tasks in parallel with invokeAll()
- Create your first parallel task - implement the Callable interface for now
- Get an instance of a ForkJoinPool, where the tasks will be executed
- Start the tasks in parallel with invokeAll()
- Create your first parallel task - implement the Callable interface for now
- Get an instance of a ForkJoinPool, where the tasks will be executed
- Start the tasks in parallel with invokeAll()
- Create your first parallel task - implement the Callable interface for now
- Get an instance of a ForkJoinPool, where the tasks will be executed
- Start the tasks in parallel with invokeAll()
- Create your first parallel task - implement the Callable interface for now
- Get an instance of a ForkJoinPool, where the tasks will be executed
- Start the tasks in parallel with invokeAll()
- Create a RecursiveTask
- Spin off subtasks with a fork() method
- Collect results with the join() method
- Create a RecursiveTask
- Spin off subtasks with a fork() method
- Collect results with the join() method
- Create a RecursiveTask
- Spin off subtasks with a fork() method
- Collect results with the join() method
- Create a RecursiveTask
- Spin off subtasks with a fork() method
- Collect results with the join() method
- Create a RecursiveTask
- Spin off subtasks with a fork() method
- Collect results with the join() method
- Create a RecursiveTask
- Spin off subtasks with a fork() method
- Collect results with the join() method
- Go beyond RecursiveTask and explore ForkJoinTask
- Create a RecursiveAction
- Play with different methods on the ForkJoinPool
- Go beyond RecursiveTask and explore ForkJoinTask
- Create a RecursiveAction
- Play with different methods on the ForkJoinPool
- Go beyond RecursiveTask and explore ForkJoinTask
- Create a RecursiveAction
- Play with different methods on the ForkJoinPool
- Go beyond RecursiveTask and explore ForkJoinTask
- Create a RecursiveAction
- Play with different methods on the ForkJoinPool
- Go beyond RecursiveTask and explore ForkJoinTask
- Create a RecursiveAction
- Play with different methods on the ForkJoinPool
- Go beyond RecursiveTask and explore ForkJoinTask
- Create a RecursiveAction
- Play with different methods on the ForkJoinPool
- Create a task throwing an unchecked exception, see how it affects other subtasks
- Handle a checked exception inside the ForkJoinTask.compute() method
- Cancel a task and see what happens with the execution
- Create a task throwing an unchecked exception, see how it affects other subtasks
- Handle a checked exception inside the ForkJoinTask.compute() method
- Cancel a task and see what happens with the execution
- Create a task throwing an unchecked exception, see how it affects other subtasks
- Handle a checked exception inside the ForkJoinTask.compute() method
- Cancel a task and see what happens with the execution
- Create a task throwing an unchecked exception, see how it affects other subtasks
- Handle a checked exception inside the ForkJoinTask.compute() method
- Cancel a task and see what happens with the execution
- Create a task throwing an unchecked exception, see how it affects other subtasks
- Handle a checked exception inside the ForkJoinTask.compute() method
- Cancel a task and see what happens with the execution
- Create a task throwing an unchecked exception, see how it affects other subtasks
- Handle a checked exception inside the ForkJoinTask.compute() method
- Cancel a task and see what happens with the execution
- Execute a task in parallel, by creating a callable object and submitting it to an object pool
- Work with Future and learn about its lifecycle
- Create a Runnable action, and compare it to its callable counterpart
- Create a thread object and learn about its basic properties
- Use a better way to create and manage threads – by utilizing thread pools
- Experiment with different kinds of Thread Pools
- Create a CompletableFuture
- Chain several CompletableFuture objects with thenAccept(), thenCombine(), and thenApply()
- Handle exceptions with #handle()
- Create streams from different data sources, such as arrays or collections
- Run different transformation and reduction operations
- See how intermediate operations are lazy, and how important it is to use a terminal operation
- Create parallel streams from an existing stream, or directly from a collection
- Learn when to choose parallel streams over sequential streams
- Recap section 2 and compare Thread Pool to ForkJoinPool
Additional information
Java Concurrency and Multithreading in Practice