JUC--CompletableFuture下

简介: 简单介绍CompletableFuture

 对计算速度进行选用

import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
public class Test4 {
    public static void main(String[] args) {
        CompletableFuture<String> a = CompletableFuture.supplyAsync(() -> {
            try { TimeUnit.SECONDS.sleep(4); } catch (InterruptedException e) {e.printStackTrace();}
            return "a";
        });
        CompletableFuture<String> b = CompletableFuture.supplyAsync(() -> {
            try { TimeUnit.SECONDS.sleep(3); } catch (InterruptedException e) {e.printStackTrace();}
            return "b";
        });
        //谁快用谁
        CompletableFuture<String> result = a.applyToEither(b, f -> {
            return f;
        });
        System.out.println(result.join());
    }
}

image.gif

对计算结果进行合并

import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
public class Test4 {
    public static void main(String[] args) {
        CompletableFuture<Integer> a = CompletableFuture.supplyAsync(() -> {
            try { TimeUnit.SECONDS.sleep(4); } catch (InterruptedException e) {e.printStackTrace();}
            return 10;
        });
        CompletableFuture<Integer> b = CompletableFuture.supplyAsync(() -> {
            try { TimeUnit.SECONDS.sleep(3); } catch (InterruptedException e) {e.printStackTrace();}
            return 20;
        });
        //等待俩者结果一起返回
        CompletableFuture<Integer> result = a.thenCombine(b, (x,y) -> {
            return x + y;
        });
        System.out.println(result.join());
    }
}

image.gif

image.gif编辑


相关文章
|
2月前
|
Java API
java多线程之FutureTask、Future、CompletableFuture
java多线程之FutureTask、Future、CompletableFuture
|
2月前
|
Java 编译器
JUC并发编程之CompletableFuture详解
JUC并发编程中的Future接口是Java 5中引入的一种异步编程机制,用于表示一个可能在未来完成的计算结果。它允许我们提交一个任务给线程池或其他执行器执行,并且可以通过Future对象获取任务执行的结果或者判断任务是否已经完成。
|
2月前
|
Java
Java 并发编程 Future及CompletionService
Java 并发编程 Future及CompletionService `Future`用于异步结果计算。它提供了一些方法来检查计算是否完成,使用`get`方法将阻塞线程直到结果返回 `CompletionService`整合了`Executor`和`BlockingQueue`的功能。将`Callable`任务提交给它去执行,使用`take()`和`poll()`获取最新完成的任务执行结果.
Java 并发编程 Future及CompletionService
|
10月前
|
Java 调度
并发编程——Future & CompletableFuture
Java创建线程的方式,一般常用的是Thread,Runnable。如果需要当前处理的任务有返回结果的话,需要使用Callable。Callable运行需要配合Future。
30 0
|
11月前
|
Java Linux
JUC--CompletableFuture上
Future接口(FutureTask实现类)定义了操作异步任务执行一些方法,如获取异步任务的执行结果,取消任务带带执行,判断任务是否被取消,判断任务执行是否完毕等。
|
12月前
|
并行计算 Java
JUC并发编程之CompletableFuture
future是java5新加的一个接口,他提供了一种异步并行计算的功能 接口定义了操作异步任务执行的一些方法,如获取异步任务的执行结果、取消任务的执行、判断任务是否被取消、判断任务是否执行完毕 目的:异步多线程执行且有返回结果,特点:多线程/有返回/异步任务 补充:Runnable实现的是run方法,没有返回值,没有异常,Callable实现的是call方法,有返回值,需要处理异常
67 0
|
12月前
|
Java
Java并发编程:深入理解CompletableFuture
一、引言 在Java的世界中,多线程编程一直被誉为其独特优势之一,而在Java 8中引入的CompletableFuture则为这一领域提供了更加强大和灵活的工具。本文将对CompletableFuture进行深度剖析,带你领略其在多线程开发中的实力。
75 0
|
JavaScript 前端开发 Java
JUC-Java多线程Future,CompletableFuture
JUC-Java多线程Future,CompletableFuture
JUC-Java多线程Future,CompletableFuture
|
SpringCloudAlibaba 前端开发 Java
JUC系列(四) callable与 常用的工具类
在多线程工作中常用的一些辅助类
JUC系列(四) callable与 常用的工具类