深入浅出 JAVA 之线程 - Callable、Future、FutureTask 详解
文章目录
!版权声明:本博客内容均为原创,每篇博文作为知识积累,写博不易,转载请注明出处。
系统环境:
- JDK 版本: OpenJDK 11
参考地址:
- 并发编程之Future&FutureTask深入解析
- https://zhuanlan.zhihu.com/p/65233152
- https://zhuanlan.zhihu.com/p/94810862
一、Runnable 和 Callable 简介
1.1 Runnable 概述
1.2 Callable 概述
1.3 Callable 和 Runnable 的不同之处
- 方法名: Callable 规定的执行方法是 call(),而 Runnable 规定的执行方法是 run()。
- 返回值: Callable 的任务执行后有返回值,而 Runnable 的任务执行后是没有返回值的。
- 抛出异常: call() 方法可抛出异常,而 run() 方法是不能抛出受检查异常的。
与 Callable 配合的有一个 Future 接口,通过 Future 可以了解任务执行情况,或者取消任务的执行,还可获取任务执行的结果,这些功能都是 Runnable 做不到的,Callable 的功能要比 Runnable 强大。
二、Future 简介
3.1 Future 概述
3.2 Future 使用示例
三、FutureTask 简介
3.1 FutureTask 组成结构
3.2 RunnableFuture 概述
3.2 FutureTask 概述
四、FutureTask 示例
4.1 FutureTask执行多任务计算的使用场景
4.2 FutureTask任务执行完回调
五、Runnable 源码
六、Callable 源码
七、RunnableFuture 源码
八、FutureTask 源码
!版权声明:本博客内容均为原创,每篇博文作为知识积累,写博不易,转载请注明出处。