如何将CompletableFuture这个异步神器改写成长尾?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3410个文字,预计阅读时间需要14分钟。
最近在RocketMQ的源码中,发现很多地方都使用了CompletableFuture。今天就来聊聊JDK1.8提供的异步神器CompletableFuture,并简单分析一下RocketMQ源码中的使用。
最近一直畅游在RocketMQ的源码中,发现在RocketMQ中很多地方都使用到了CompletableFuture,所以今天就跟大家来聊一聊JDK1.8提供的异步神器CompletableFuture,并且最后会结合RocketMQ源码分析一下CompletableFuture的使用。
Future接口以及它的局限性我们都知道,Java中创建线程的方式主要有两种方式,继承Thread或者实现Runnable接口。但是这两种都是有一个共同的缺点,那就是都无法获取到线程执行的结果,也就是没有返回值。于是在JDK1.5 以后为了解决这种没有返回值的问题,提供了Callable和Future接口以及Future对应的实现类FutureTask,通过FutureTask的就可以获取到异步执行的结果。
于是乎,我们想要开启异步线程,执行任务,获取结果,就可以这么实现。
本文共计3410个文字,预计阅读时间需要14分钟。
最近在RocketMQ的源码中,发现很多地方都使用了CompletableFuture。今天就来聊聊JDK1.8提供的异步神器CompletableFuture,并简单分析一下RocketMQ源码中的使用。
最近一直畅游在RocketMQ的源码中,发现在RocketMQ中很多地方都使用到了CompletableFuture,所以今天就跟大家来聊一聊JDK1.8提供的异步神器CompletableFuture,并且最后会结合RocketMQ源码分析一下CompletableFuture的使用。
Future接口以及它的局限性我们都知道,Java中创建线程的方式主要有两种方式,继承Thread或者实现Runnable接口。但是这两种都是有一个共同的缺点,那就是都无法获取到线程执行的结果,也就是没有返回值。于是在JDK1.5 以后为了解决这种没有返回值的问题,提供了Callable和Future接口以及Future对应的实现类FutureTask,通过FutureTask的就可以获取到异步执行的结果。
于是乎,我们想要开启异步线程,执行任务,获取结果,就可以这么实现。

