[JavaThread学习笔记]Callable和Future简介
分类:
其他好文 时间:
2016-01-17 21:30:22
阅读次数:
107
Runnable是执行工作的独立任务,但是它不返回任何值,如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。自从Java 1.5开始,就提供了Callable和Future,通过它们可以在任务执行完毕之后得到任务执行结果。一、Runnablejava....
分类:
其他好文 时间:
2015-10-21 23:53:56
阅读次数:
380
启动一个线程不论使用Thread或者Runnable的时候,都是没有返回结果的。也就是说Thread和Runnable的run()方法必须没有返回值。 public void run(){} 解决方案: Callable和Future,一个产生结果,一个拿到结果。 简单的来一个实例demo帮助我们理解:public class CallableAndFuture {
/**
* @pa...
分类:
编程语言 时间:
2015-07-30 11:26:21
阅读次数:
117
通过直接继承Thread, 实现Runnable接口来创建线程。但这两种方式都有一种缺陷:在执行完任务之后无法获得执行结果。 如果需要获得执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来比较麻烦,而jdk中Callable和Future,通过他们可以在任务执行完毕...
分类:
其他好文 时间:
2015-06-30 08:58:55
阅读次数:
170
java 使用Callable和Future返回线程执行的结果...
分类:
编程语言 时间:
2015-06-15 09:24:28
阅读次数:
138
今天在项目开发中需要用到对执行方法加上时间控制,如果方法执行过长则跳出执行,废话不说,直接上代码,用的是线程池配合Callable和Future方式对执行方法的超时阻断。希望各位牛人指正
//启用线程池
final ExecutorService exec = Executors.newFixedThreadPool(1);
Callable> ...
分类:
编程语言 时间:
2015-06-09 17:36:50
阅读次数:
146
在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。
这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。
如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。
而自从Java 1.5开始,就提供了Callable和Future,通过它们可以在任务执行完毕之后得到任务...
分类:
编程语言 时间:
2015-06-01 13:20:53
阅读次数:
206
我们知道线程能通过继承Thread和实现Runnable接口来实现,但是,他们都有一个弊端,就是run之后不能有返回值,当然我们可以通过向线程中传入变量的方式解决,但是貌似又不总是那么可靠,还好,java给了我们另外的接口Callable和Future.
我们先来看看他们的结构:
public interface Callable{
V call() throws Except...
分类:
编程语言 时间:
2015-04-09 11:59:52
阅读次数:
135
接着上一篇继续并发包的学习,本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果。 Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被线程执...
分类:
编程语言 时间:
2015-03-27 23:52:10
阅读次数:
175
//创建一个线程ExecutorServiceexecutorService=Executors.newSingleThreadExecutor();Future<String>future=executorService.submit(newCallable<String>(){@OverridepublicStringcall()throwsInterruptedException{Thread.sleep(1000);return"success";}});Syste..
分类:
其他好文 时间:
2015-03-18 06:36:31
阅读次数:
115