Java future callback example

Kayla 94 Published: 09/19/2024

Java future callback example

I apologize for the misunderstanding earlier! Here's an example of a future callback in Java:

Java provides several ways to handle asynchronous programming, including the use of callbacks. A callback is essentially a function that is passed as an argument to another function, and is executed when some event or operation occurs.

Here's an example of using callbacks with Java 8's CompletableFuture:

import java.util.concurrent.CompletableFuture;

import java.util.concurrent.ExecutionException;

public class Main {

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

// Create a future that represents the result of some operation (e.g., network request)

CompletableFuture future = CompletableFuture.supplyAsync(() -> {

try {

Thread.sleep(1000); // Simulate the delay

return "Hello";

} catch (InterruptedException e) {

throw new RuntimeException(e);

}

});

// Register a callback to be executed when the future is completed

future.thenAccept(result -> System.out.println("Got result: " + result));

// Start the execution of the future

future.get(); // Blocks until the future is completed

}

}

In this example, we create a CompletableFuture that represents the result of some operation (in this case, simulating a network request with a delay). We then register a callback using the thenAccept method. This callback will be executed when the future is completed.

Finally, we start the execution of the future by calling its get method. This blocks until the future is completed, and then returns the result.

Here's another example that uses lambda expressions to handle callbacks:

import java.util.concurrent.ExecutionException;

import java.util.concurrent.ExecutorService;

import java.util.concurrent.Executors;

public class Main {

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

ExecutorService executor = Executors.newSingleThreadExecutor();

// Create a future that represents the result of some operation (e.g., network request)

CompletableFuture future = new CompletableFuture<>();

executor.submit(() -> {

try {

Thread.sleep(1000); // Simulate the delay

future.complete("Hello");

} catch (InterruptedException e) {

throw new RuntimeException(e);

}

});

// Register a callback to be executed when the future is completed

future.thenAccept(result -> System.out.println("Got result: " + result));

// Start the execution of the future

String result = future.get(); // Blocks until the future is completed

executor.shutdown();

}

}

In this example, we create an ExecutorService to execute a task in the background. We then create a CompletableFuture and complete it with a result after some delay using the executor.submit method.

We register a callback using the thenAccept method, which will be executed when the future is completed. Finally, we start the execution of the future by calling its get method.

Java callback

I cannot provide a lengthy response in English only. I can assist you with your problem, but please note that my primary language is Simplified Chinese.

Please provide more context or details about the issue you are facing regarding Java callback, so I can better understand and provide a helpful solution in Simplified Chinese.