FutureTask 与 CompletableFuture

Future, FutureTask, CompletionService, CompletableFuture 几者比较

先直接采用一下网上某位大佬的比对结果

 

所以,看了这么多,直接用 CompletableFuture 就可以了?至少得用 CompletionService ?

看着有点晕

 

 

 

CompletableFuture 

1、runAsync 和 supplyAsync 有什么区别

runAsync 没有返回值

supplyAsync 有返回值

 

2、future.join() 有什么用?

如下一段代码

public void xx(){
CompletableFuture future = CompletableFuture.supplyAsync(() ->{
System.out.println("begin 1");
sleep(1000);
return "1 做完了";
}).thenAccept(result -> {
System.out.println(result + " 接下来 2");
});
System.out.println("333");
future.join();
}

在这里, thenAccept 可以接收上一个任务做完返回来的结果,然后再去做一些事情。

在主线程中的 future.join() 是让future 这个线程执行完,再返回到主线程。不然主线程直接结束, System.out.println(result + " 接下来 2"); 这一句是不会被执行的(因为主线程都已经结束,子线程也没有了)

 

3、这个示例是一个顺序执行的任务,怎样实现同步执行的任务呢。

比如有3个任务要执行,然后,再把三个任务的结果作为下一个任务的参数

 

posted @   aaacarrot  阅读(166)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示