How to implement CompletableFuture class in java8?

     CompletableFuture deals with asynchronous programming. It run the process asynchronously. It allows the programs to execute in parallelly.

Built in package: java.util.concurrent.

Why completableFuture class?

CompletableFuture is efficient and provide response in timely manner. It has many functions listed below.

  • supplyAsync ,runAsync : It deals with asynchronous computations to run the tasks.
  • thenApply,thenAccept,thenRun : Multiple tasks executed and linked together to perform the computation.
  • thenCombine,thenCompose,allOf : It combines the tasks.
  • Exception handling: If any error occurs, this will handle.

Let the program begins.

First, Asynchronous Computation using completableFuture Program in java is given below.

Steps:

  • ·       Create a public class CFEg with main() function.
  • ·       Next, include the lambda expression to execute the code.
  • ·       To print the output, use try and catch block to avoid errors.

//Program to implement Asynchronous computation using CompletableFuture.

import java.util.concurrent.*;

public class CFEg { 

  public static void main(String[] args) { 

              CompletableFuture<String> fu1 = CompletableFuture.supplyAsync(() -> {

        return "Hi,Asynchronous Computation is done with completableFuture";

              });

        try {

              System.out.println(fu1.get());

        } catch(Exception e)

        {

        System.out.println(e);

         }

}

}

Save,compile and execute the program to get the output.

C:\raji\blog>javac CFEg.java

C:\raji\blog>java CFEg

Hi,Asynchronous Computation is done with completableFuture

Next program is to implement the chaining tasks.

Program to implement chaining tasks using CompletableFuture:

Steps:

  • ·       Create a class and main() function.
  • ·       Create three objects for CompletabeFuture. Two for getting input as chaining tasks. Third one for combining these two.
  • ·       Print the output using try and catch block.

//Program to implement chaining tasks using CompletableFuture:

import java.util.concurrent.*;

public class CFEg1 { 

public static void main(String[] args) { 

CompletableFuture<String> fut1 = CompletableFuture.supplyAsync(() -> "Welcome to the world of");

CompletableFuture<String> fut2 = CompletableFuture.supplyAsync(() -> "CompletableFuture coding");

CompletableFuture<String> combinedFuture = fut1.thenCombine(fut2, (ts1, ts2) -> ts1 + " " + ts2);

 try {

              System.out.println(combinedFuture.get());

        } catch(Exception e)

        {

        System.out.println(e);

         }

}

}

Compile and execute the program.

C:\raji\blog>javac CFEg1.java

C:\raji\blog>java CFEg1

Welcome to the world of CompletableFuture coding

Next program is given below.

Program to implement combining future using CompletableFuture:

Steps:

  • ·       Import the built in package.
  • ·       Create a class and include main function.
  • ·       Using the system functions to print the output.

//Program to implement combining future using CompletableFuture:

import java.util.concurrent.*;

public class CFEg2 { 

  public static void main(String[] args) { 

try {

CompletableFuture<Void> fut = CompletableFuture.supplyAsync(() -> "Asynchronous")

   .thenAcceptAsync(res -> System.out.println(res + "  Programming"));

fut.get();

 } catch(Exception e)

        {

        System.out.println(e);

         }

}

}

Run the program and the output is displayed.

C:\raji\blog>javac CFEg2.java

C:\raji\blog>java CFEg2

Asynchronous  Programming

These are the different programs to implement CompletableFuture class in java8. It is useful in building efficient code.

Comments

Popular posts from this blog

How to create a XML DTD for displaying student details

How to write your first XML program?

Java NIO examples to illustrate channels and buffers.