CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {
System.out.println("执行异步任务");
return "执行异步任务";
});
// 调用 join 方法进行等待,获取执行结果
String s = future.get();
CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {
System.out.println("执行异步任务");
return "执行异步任务";
});
// 调用 join 方法进行等待,获取执行结果
String s = future.join();
// 执行 CompletableFuture 任务
CompletableFuture<String> cf = CompletableFuture.supplyAsync(() -> {
// 睡眠5毫秒
sleep(5);
return "示例-执行完成";
});
// 随机睡眠1~10毫秒
sleep(new Random().nextInt(10));
// 调用 getNow 方法获取执行结果,如果任务未执行完成则输出设置的默认值
String result = cf.getNow("默认值");
System.out.println(result);
取消任务,如果任务尚未执行结束,调用该方法成功取消任务时返回 true,否则返回 false。并且任务取消成功后,通过 get/join 方法获取结果时,会抛出 CancellationException 异常。
// 执行 CompletableFuture 任务
CompletableFuture<Void> cf = CompletableFuture.runAsync(() -> System.out.println("执行 CompletableFuture 任务"));
// 调用 cancel 方法取消任务
boolean result = cf.cancel(true);
System.out.println(result);