Trusted answers to developer questions
Trusted Answers to Developer Questions

Related Tags

java
communitycreator
ortimeout
completablefuture

What is CompletableFuture.orTimeout() in Java?

abhilash

Overview

orTimeout() is an instance method of the CompletableFuture which is used to exceptional timeout if the future is not completed within the given period of time.

Once the waiting period is over, the method throws an exception. This method was introduced in Java version 9.

The orTimeout method is defined in the CompletableFuture class. The class is defined in the java.util.concurrent package. To import the class, check the following import statement:

import java.util.concurrent.CompletableFuture;

Syntax


public CompletableFuture<T> orTimeout(long timeout, TimeUnit unit)

Parameters

  • long timeout: The maximum amount of time to wait.
  • TimeUnit unit: The unit of time.

Return value

This method returns the same CompletableFuture on which this method is applied.

Code

import java.util.concurrent.*;

public class Main {

    static void sleep(int millis){
        try {
            Thread.sleep(millis);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) throws ExecutionException, InterruptedException {

        CompletableFuture<String> completableFuture = CompletableFuture.supplyAsync(() -> {
            sleep(4000);
            return "Hello-Educative";
        });

        long timeOutValue = 1;
        TimeUnit timeUnit = TimeUnit.SECONDS;

        completableFuture.orTimeout(timeOutValue, timeUnit).get();
    }
}
Implementation of the "orTimeOut" method

Explanation

  • Line 1: We import the relevant packages and classes.
  • Line 5: We define a function called sleep().
  • Line 15: We get the CompletableFuture by invoking the createFuture method.
  • Line 16: We call the sleep() method.
  • Line 23: We call the orTimeout() method in the main function.

The code above throws a TimeoutException, indicating that the future’s completion took longer than expected.

RELATED TAGS

java
communitycreator
ortimeout
completablefuture
RELATED COURSES

View all Courses

Keep Exploring