Callable和Future和FutureTask

原创 2011年01月20日 16:46:00

Callable是类似于Runnable的接口,实现Callable接口的类和实现Runnable的类都是可被其它线程执行的任务。
Callable和Runnable有几点不同:
 (1)Callable规定的方法是call(),而Runnable规定的方法是run().
 (2)Callable的任务执行后可返回值,而Runnable的任务是不能返回值的。
 (3)call()方法可抛出异常,而run()方法是不能抛出异常的。
 (4)运行Callable任务可拿到一个Future对象,
Future 表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并检索计算的结果。
通过Future对象可了解任务执行情况,可取消任务的执行,还可获取任务执行的结果。

 

例子:

java线程(3)——详解Callable、Future和FutureTask

接上篇博客 java线程——三种创建线程的方式 ,这篇博客主要介绍第三种方式Callable和Future。比较继承Thread类和实现Runnable接口,接口更加灵活,使用更广泛。但这两种方式都...
  • u010066934
  • u010066934
  • 2016年04月09日 20:55
  • 1346

Java并发编程:Callable、Future和FutureTask原理解析

返回结果的任务Callable与FutureExecutor框架使用Runnable作为其基本的任务表示形式。Runnable是一种有很大局限的抽象,它不能返回一个值或抛出一个受检查的异常。Runna...
  • codershamo
  • codershamo
  • 2016年07月13日 20:00
  • 5368

Java并发编程与技术内幕:Callable、Future、FutureTask、CompletionService

在上一文章中,笔者介绍了线程池及其内部的原理。今天主要讲的也是和线程相关的内容。一般情况下,使用Runnable接口、Thread实现的线程我们都是无法返回结果的。但是如果对一些场合需要线程返回的结果...
  • Evankaka
  • Evankaka
  • 2016年06月12日 08:53
  • 10175

Java多线程编程:Callable、Future和FutureTask浅析(多线程编程之四)

通过前面几篇的学习,我们知道创建线程的方式有两种,一种是实现Runnable接口,另一种是继承Thread,但是这两种方式都有个缺点,那就是在任务执行完成之后无法获取返回结果,那如果我们想要获取返回结...
  • javazejian
  • javazejian
  • 2016年03月15日 15:09
  • 27533

Future和FutureTask的区别(经过自己改良版)

API: Java代码   public interface Executor {           void execute(Runnable command);     }      ...
  • zhousenshan
  • zhousenshan
  • 2016年05月22日 08:30
  • 2381

Java中的Runnable、Callable、Future、FutureTask的区别与示例

Java中的Runnable、Callable、Future、FutureTask的区别与示例
  • bboyfeiyu
  • bboyfeiyu
  • 2014年05月01日 23:34
  • 31062

高级并发编程学习-callable与Future的使用

FutureTask可用于异步获取执行结果或取消执行任务的场景。通过传入Runnable或者Callable的任务给FutureTask,直接调用其run方法或者放入线程池执行,之后可以在外部通过Fu...
  • leixingbang1989
  • leixingbang1989
  • 2016年01月11日 19:05
  • 1650

Callable/Future Runnable 以及 FutureTask 用法

Callable/Future Runnable 以及 FutureTask 用法
  • conquer0715
  • conquer0715
  • 2013年10月07日 05:50
  • 5848

callable和future浅谈

大家都知道创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。   这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。   如果需要获取执行结果,就必...
  • zhoushumin157016
  • zhoushumin157016
  • 2016年07月22日 16:52
  • 781

java多线程编程之Callable、Future和FutureTask。

平时在工作中一般用到的多线程为:一种是直接继承Thread,另外一种就是实现Runnable接口,但是在最近工作遇到一个问题,希望线程执行完后返回结果。哦哦,上面两种都不允许有返回值,悲剧了。 一、来...
  • piaoslowly
  • piaoslowly
  • 2016年06月05日 23:37
  • 226
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Callable和Future和FutureTask
举报原因:
原因补充:

(最多只允许输入30个字)