多线程编程(六)--Callable&Future
来源:互联网 发布:软件开发助理 编辑:程序博客网 时间:2024/05/21 07:49
Thread类和Runnable接口和Java内存管理模型使得多线程编程简单直接。但是Thread类和Runnable接口都不允许声明检查型异常,也不能定义返回值。
Callable接口和Future接口的引入以及它们对线程池的支持优雅的解决了这两个问题。
Callable接口类似于Runnable接口,Callable接口被线程执行后,可以返回值,这个返回值可以被Future拿到,也就是说,Future可以拿到异步执行任务的返回值。Future取得的结果类型和Callable返回的结果类型必须一致,这是通过泛型来实现的。
1、Callable要采用ExecutorService的submit方法提交,返回的future对象可以取消任务
代码:
结果:
Executor使我们无需显示的去管理线程的生命周期。
2、执行多个带返回值的任务,并取得多个返回值
3、了解Callable接口以及Future接口
Callable接口与Runnable接口的区别
1)Callable定义的方法时call,而Runnable定义的方法是run
2)Callable的call方法可以由返回值,而Runnable的run方法不能有返回值
3)Callable的call方法可以抛异常,而Runnable的run方法不能抛异常
Future表示一步计算的结果,它提供了检查计算是否完成的方法,以等待计算的完成,并检索计算的结果。Future的calcel方法可以取消任务的执行,它有一布尔参数,参数为true表示立即终端任务的执行,参数为false表示允许正在运行的任务运行完成。Future的get方法等待计算完成,获取计算结果。
0 0
- 多线程编程(六)--Callable&Future
- 多线程编程(六)--Callable&Future
- java 多线程( Future Callable)
- 多线程编程入门(11):Callable和Future
- Java多线程编程:Callable、Future和FutureTask浅析(多线程编程之四)
- Java多线程编程:Callable、Future和FutureTask浅析(多线程编程之四)
- 多线程学习(五)之Callable&Future
- 多线程Callable和Future
- 多线程 :Callable和Future
- 多线程--callable、Future、FutureTask
- Java多线程编程--(8)学习Java5.0 并发编程包--线程池、Callable & Future 简介
- Java多线程编程--(8)学习Java5.0 并发编程包--线程池、Callable & Future 简介
- java并发编程(8)--callable&Future
- 译 -- Java 并发编程(多线程)一 | Callable and Future | CountDownLatch | Runable
- java多线程编程之Callable、Future和FutureTask。
- Java多线程编程:Callable、Future和FutureTask浅析
- Java多线程编程:Callable、Future和FutureTask浅析
- Java多线程编程:Callable、Future和FutureTask浅析
- MP平台--增删改查规则
- 使用Versions时.a文件不能成功被提交的解决方法
- CentOS 配置LAMP环境
- There is a circular dependency between XMPPFramework/Core and XMPPFramework/Authentication
- LeetCode_63---Unique Paths II
- 多线程编程(六)--Callable&Future
- android中实现图片的上下移动
- AndroidAnnotations 自定义控件 ant编译 找不到类
- BigDecimal介绍
- Xcode6.3.2无线崩溃问题解决
- SMS---发送短信
- 你的App为什么上不了TOP10?
- SPDL: SHGetSpecialFolderLocation 获得系统特殊目录
- windows下搭建php文件