Runnable、Callable、Future、FutureTask
来源:互联网 发布:人工智能这本书 编辑:程序博客网 时间:2024/04/28 08:02
Runnable
实现无参的run()方法,不带返回值
Callable
实现无参的call()方法,可带返回值
一般使用配合ExecutorService的submit使用
<T> Future<T> submit(Callable<T> task);<T> Future<T> submit(Runnable task, T result);Future<?> submit(Runnable task);
Future
Future就是对于具体的Runnable或者Callable任务的执行结果进行取消、查询是否完成、获取结果。必要时可以通过get方法获取执行结果,该方法会阻塞直到任务返回结果。
也就是说Future提供了三种功能:
1)判断任务是否完成 2)能够中断任务 3)能够获取任务执行结果
因为Future只是一个接口,所以是无法直接用来创建对象使用的,因此就有了下面的FutureTask。
FutureTask
FutureTask是Future接口的一个唯一实现类
public class FutureTask<V> implements RunnableFuture<V> {...}public interface RunnableFuture<V> extends Runnable, Future<V> {...}
可以看出RunnableFuture继承了Runnable接口和Future接口,而FutureTask实现了RunnableFuture接口。所以它既可以作为Runnable被线程执行,又可以作为Future得到Callable的返回值
0 0
- Runnable、Callable、Future、FutureTask
- Runnable、Callable、Future、FutureTask
- Runnable、Callable、Executor、Future、FutureTask
- Runnable/Thread/Callable/Future/FutureTask
- Runnable、Callable、Future 和 FutureTask
- Runnable、Callable、Executor、Future、FutureTask关系解读
- Callable/Future Runnable 以及 FutureTask 用法
- Runnable、Callable、Executor、Future、FutureTask关系解读
- Runnable、Callable、Executor、Future、FutureTask关系解读
- Runnable、Callable、Executor、Future、FutureTask关系解读
- Runnable、Callable、Executor、Future、FutureTask关系解读
- 多线程之Runnable,Callable,Future,FutureTask
- Java中的Runnable、Callable、Future、FutureTask
- Future,FutureTask,Callable,Runnable的用法
- Runnable、Callable、Executor、Future、FutureTask关系解读
- Runnable、Callable、Executor、Future、FutureTask关系解读
- Runnable,Callable,Future和FutureTask简介
- Runnable, Callable, Future与FutureTask,例程
- NOI 2015 程序自动分析
- 将一个5*5 矩阵中最大的放在中间,四个角分别放最小的数据,顺序分别是左右上下,通过函数完成。
- cmsplus实战之仿[我扫网]之十一:安装采集器采集并发布数据
- cmsplus实战之仿[我扫网]之十二:打包网站及数据库并上传到服务器调试
- 【C++研发面试笔记】14. 基本数据结构-查找表与并查集
- Runnable、Callable、Future、FutureTask
- CGA综治仪
- 杭电ACM1001题------c语言
- Tomcat的JNDI设置
- 进制的本质
- 剑指offer:栈的压入、弹出序列(java)
- CS231n-机器学习中numpy基础.md
- HDU 5112 A Curious Matt(2014亚洲区北京站现场赛)
- 多线程编程(一)——写一个简单的死锁