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个任务要执行,然后,再把三个任务的结果作为下一个任务的参数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南