Runnable和Callable的区别:
2017-08-28 15:00
204 查看
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> { V call() throws Exception; }Callable中的call()方法类似Runnable的run()方法,就是前者有返回值,后者没有。 当将一个Callable的对象传递给ExecutorService的submit方法,则该call方法自动在一个线程上执行,并且会返回执行结果Future对象。 同样,将Runnable的对象传递给ExecutorService的submit方法,则该run方法自动在一个线程上执行,并且会返回执行结果Future对象,但是在该Future对象上调用get方法,将返回null。
相关文章推荐
- Java中的Runnable、Callable、Future、FutureTask的区别与示例
- Callable接口与Runnable接口的区别
- Runnable和Callable接口的区别
- Runnable和Callable的区别和用法
- Runnable,Callable,Future,FutureTask的区别与联系
- Java中的Runnable、Callable、Future、FutureTask的区别和CompletionService的使用场景
- 安卓复习之旅—Thread、Runnable、Callable、Futrue类关系与区别
- Runnable和Callable的区别
- Thread、Runnable、Callable三种创建线程的简单示例及区别简介
- Callable和Runnable的区别
- Java中的Runnable、Callable、Future、FutureTask的区别与示例
- Java中的Runnable、Callable、Future、FutureTask的区别与示例
- Java中的Runnable、Callable、Future、FutureTask的区别与示例
- Runnable和Callable的区别
- Java中的Runnable、Callable、Future、FutureTask的区别与示例
- Java Runnable与Callable区别
- Thread--01在线程池使用Callable和Runnable的区别以及如何关闭线程
- Java Callable接口和Runnable接口的区别
- Runnable , Callable 区别
- Java多线程Runnable与Callable区别与拓展