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
Post a Comment