O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Java 9 Concurrency - High-Level Elements

Video Description

Learn the Java Concurrency API with Thread Executors and the Fork/Join Frame work

About This Video

  • Important recipes covering multi-threading and parallel programming in detail

  • This video takes a close look at the Java 9 APIs and their impact on concurrency

  • See practical examples on thread safety, high-performance classes, safe sharing, and a whole lot more

  • In Detail

    Writing concurrent and parallel programming applications is a crucial skill for any Java programmer. Java 9 comes with a host of fantastic features, including significant performance improvements and new APIs. This video will take you through all the new APIs, showing you how to build parallel and multi-threaded applications. The video covers all the elements of the Java Concurrency API, with essential recipes that will help you take advantage of the exciting new capabilities. You will learn how to use parallel and reactive streams to process massive data sets. Next, you will move on to create streams and use all their intermediate and terminal operations to process big collections of data in a parallel and functional way. Further, you’ll discover a whole range of recipes for almost everything, such as thread management, synchronization, executors, parallel and reactive streams, and many more. At the end of the video, you will learn how to obtain information about the status of some of the most useful components of the Java Concurrency API and how to test concurrent applications using different tools.

    Table of Contents

    1. Chapter 1 : Thread Executors
      1. The Course Overview 00:03:20
      2. Creating a Thread Executor and Controlling its Rejected Tasks 00:09:36
      3. Executing Tasks in an Executor that Returns a Result 00:06:05
      4. Running Multiple Tasks and Processing the First Result 00:06:03
      5. Running Multiple Tasks and Processing all the Results 00:05:29
      6. Running a Task in an Executor After a Delay 00:03:25
      7. Running a Task in an Executor Periodically 00:05:49
      8. Canceling a Task in an Executor 00:04:12
      9. Controlling a Task Finishing in an Executor 00:04:21
      10. Separating the Launching of Tasks and the Processing of their Results in an Executor 00:06:58
    2. Chapter 2 : Fork/Join Framework
      1. Creating a Fork/Join Pool 00:07:33
      2. Joining the Results of the Tasks 00:08:00
      3. Running Tasks Asynchronously 00:05:53
      4. Throwing Exceptions in the Tasks 00:04:59
      5. Canceling a Task 00:08:44
    3. Chapter 3 : Parallel and Reactive Streams
      1. Creating Streams from Different Sources 00:09:13
      2. Reducing the Elements of a Stream 00:07:19
      3. Collecting the Elements of a Stream 00:06:07
      4. Applying an Action to Every Element of a Stream 00:03:37
      5. Filtering the Elements of a Stream 00:03:06
      6. Transforming the Elements of a Stream 00:05:02
      7. Sorting the Elements of a Stream 00:03:52
      8. Verifying Conditions in the Elements of a Stream 00:03:34
      9. Reactive Programming with Reactive Streams 00:06:06
    4. Chapter 4 : Concurrent Collections
      1. Using Non-Blocking Thread-Safe Deques 00:04:10
      2. Using Blocking Thread-Safe Deques 00:02:14
      3. Using Blocking Thread-Safe Queue Ordered by Priority 00:03:56
      4. Using Thread-Safe Lists with Delayed Elements 00:04:32
      5. Using Thread-Safe Navigable Maps 00:04:47
      6. Using Thread-Safe HashMaps 00:05:01
      7. Using Atomic Variables 00:03:51
      8. Using Atomic Arrays 00:04:10
      9. Using the Volatile Keyword 00:03:26
      10. Using Variable Handles 00:03:13