Asynchrone Programmierung mit Java, thenCombine and thenCompose
0 comments•0 reblogs
Mit thenCombine und thenCompose lassen sich zwei abhängige bzw. unabhängige asynchrone Funktionen kombinieren.
import java.util.concurrent.CompletableFuture;
public class Asynchron {
/* dummy function for dependent futures 1 */
private CompletableFuture<String> getForName(String forname) {
return CompletableFuture.supplyAsync(
() -> {return forname;}
);
}
/* dummy function for dependent futures 2 */
private CompletableFuture<String> getSurName(String forname, String surname) {
return CompletableFuture.supplyAsync(
() -> {return forname + " " + surname;}
);
}
/* add two independent futures where the results are not dependent */
public void independentFutures(){
CompletableFuture<String> future = getForName("Heinrich ").thenCombine(
(getSurName("Not", "Dependent")), (x,y) -> {
return x.concat(y);
});
String independend_string = future.join();
System.out.println(independend_string);
}
/* add tow futures where the results are dependent */
public void dependentFutures(){
CompletableFuture<String> future = getForName("Heinrich ").thenCompose(
(forname) -> {
return getSurName(forname, "Skalitz");
});
String independend_string = future.join();
System.out.println(independend_string);
}
public static void main(String[] args){
Asynchron async = new Asynchron();
async.independentFutures();
async.dependentFutures();
}
}
https://img.blurt.world/blurtimage/ozelot47/ff90746f659b02fd26de80b694ab921c9d63c2ed.png)
0