Runnable和Callable的区别
2016-05-11 16:41
120 查看
Runnable和Callable的区别:
(1)Runnable是自从java1.1就有了,而Callable是1.5之后才加上去的
(2)Callable规定的方法是call(),Runnable规定的方法是run()
(3)Callable的任务执行后可返回值,而Runnable的任务是不能返回值(是void)
(4)call方法可以抛出异常,run方法不可以
(5)运行Callable任务可以拿到一个Future对象,表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并检索计算的结果。通过Future对象可以了解任务执行情况,可取消任务的执行,还可获取执行结果。
(6)加入线程池运行,Runnable使用ExecutorService的execute方法,Callable使用submit方法。
Callable接口也是位于java.util.concurrent包中。Callable接口的定义为:
Java代码
public interface Callable
{
V call() throws Exception;
}
(1)Runnable是自从java1.1就有了,而Callable是1.5之后才加上去的
(2)Callable规定的方法是call(),Runnable规定的方法是run()
(3)Callable的任务执行后可返回值,而Runnable的任务是不能返回值(是void)
(4)call方法可以抛出异常,run方法不可以
(5)运行Callable任务可以拿到一个Future对象,表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并检索计算的结果。通过Future对象可以了解任务执行情况,可取消任务的执行,还可获取执行结果。
(6)加入线程池运行,Runnable使用ExecutorService的execute方法,Callable使用submit方法。
Callable接口也是位于java.util.concurrent包中。Callable接口的定义为:
Java代码
public interface Callable
{
V call() throws Exception;
}
相关文章推荐
- sublime text使用
- i++与++i的区别--读书笔记
- 【Arduino官方教程第一辑】示例程序 4-1 ASCIl表
- 自身体验Ubuntu14.04安装ROS Indigo版本
- Ajax请求中的async:false/true的作用
- 网卡
- Struts 2学习及问题记录(2)——标签库的使用
- ThinkPHP CURD mysql操作
- js技巧
- 双调欧几里得旅行商问题
- 笨蛋的难题(二)
- 选择 Java 编写 iOS 与 安卓 App的八大理由
- iOS之04-方法的声明和实现
- iOS之03-类的合理设计
- iOS之02-第一个OC的类
- 远心镜头成像模型
- Linux下安装apache-ant环境
- 《C程序设计语言》读书笔记及C语言知识备忘
- 如何解决子div设置margin-top时影响父div的margin-top
- iOS之01-基本语法