主要观点总结
文章介绍了在Java中使用Future、Callable、CompletableFuture和FutureTask实现异步任务的方法,并解释了它们的原理和用法。同时,推荐了开源电商项目mall和相关的视频教程。
关键观点总结
关键观点1: Future和Callable的使用
通过创建Callable实例定义任务逻辑,提交给ExecutorService线程池执行,返回Future对象获取结果。
关键观点2: CompletableFuture的原理
基于回调和异步执行的机制,提供方便的方式来处理异步任务的执行和结果处理,支持任务的组合和异常处理。
关键观点3: FutureTask的原理
将Callable或Runnable任务封装成异步、可取消的任务,通过Future接口提供获取任务执行结果和取消任务的机制。
关键观点4: 推荐开源项目和视频教程
介绍了标星较高的电商系统mall和相关的微服务实战项目mall-swarm,并提供了全套视频教程链接,涵盖Spring Cloud核心组件、微服务项目实战、Kubernetes容器化部署等内容。
文章预览
Boot+Cloud项目学习: macrozheng.com 我们有一段业务,类似一个报表,就是获取用户的订单汇总,邮费汇总,各种手续费汇总,然后拿时间噶一卡,显示在页面。 但是呢,这几个业务没啥实际关系,数据也是分开的,一个一个获取会有点慢,我开始就是这样写的,老板嫌页面太慢,让我改, 可是页面反应慢,关我后端程序什么事 ,哥哥别打了,错了错了,我改,我改。那么最好的方案就是多线程分别获取然后汇总到一起返回。 在Java中获取异步线程的结果通常可以使用 Future 和 Callable 、 CompletableFuture 、 FutureTask 等类来实现。这些类可以用来提交任务到线程池,并在任务完成后获取结果。这就是我们想要的结果,那么这里来深入研究分析一下这三个方案。 使用Future和Callable package com.luke.designpatterns.demo; import java.util.concurrent.*; public class demo {
………………………………