Skip to main content

Lightbend Java Language - Futures

This course teaches Java developers how to use CompletableFutures to create async, non-blocking operations.

About This Course

Java 8 introduced us to Java CompletableFutures. CompletableFutures are a way to isolate operations to a separate thread of execution. They allow us to create asynchronous, non-blocking operations, which are an important part of building Reactive systems. They also allow us to isolate blocking operations to their own threadpool which can help reduce contention in the system and improve resource usage.

In this course you will learn about blocking operations, and how they impact the efficiency of your system. You will see how CompletableFutures can be used to isolate blocking operations, and how to transform those futures over time. You will also see how Executors can be used to control the threadpool that is used to execute a future.

Earn this Badge

Successful completion of this course will entitle you to the following badge:

Course Syllabus

  • Blocking Operations
  • Futures (CompletableFuture)
  • Transforming Futures
  • Executors

General Information

  • This course is free for Subscription Customers.
  • It is self-paced.
  • It can be taken at any time.
  • It can be taken as many times as you wish.


  • This course assumes that students are familiar with the Java language
  • Knowledge of features such as Java collections and generics is required.
  • You do not need to know about CompletableFutures, CompletionStages, or Executors.
  • You will be working with Maven. A basic knowledge of Maven is assumed.