FutureTask
来源:互联网 发布:怎么在淘宝开直播间 编辑:程序博客网 时间:2024/05/07 03:31
FutureTask是一项可取消的异步计算。该类提供了Future类的实现,主要方法包括:开始和取消一项计算,查询计算是否完成,获取计算结果。如果计算未完成,get()方法会阻塞。一旦计算结束,该计算不会被重启或取消。
FutureTask包裹了一个Callable对象。由于FutureTask实现了Runnable,一个FutureTask对象可以被提交给一个Executor对象执行。
除了作为一个单独类提供服务之外,该类提供了protected方法,这些方法可能在生成定制的任务类的时候有用。
内部定义了一个Sync类和一个Sync类的实例,sync。(在构造函数中实例化)来实现FutureTask的同步控制。
一般FutureTask多用于耗时的计算,主线程可以在完成自己的任务后,再去获取结果。
这个特点需要注意,这是它和普通java方法的区别之处,普通java方法会阻塞java主线程。而它可以继续干别的活,干完后,可以获取结果。如果仍未完成,主线程将阻塞直到结果取到为止。当然我们可以根据业务情况,通过轮巡查看计算的状态决定主线程的下一步操作。
0 0
- FutureTask
- FutureTask
- FutureTask
- FutureTask
- FutureTask
- FutureTask
- FutureTask
- FutureTask
- FutureTask详解
- 使用FutureTask
- ExecutorSevice & FutureTask
- FutureTask类
- 简单FutureTask
- Thread - futureTask
- java FutureTask
- FutureTask相关
- FutureTask理解
- 学习FutureTask
- iOS8新特性SizeClasses
- Spring之JMS之消息监听容器
- 从程序员到CTO的Java技术路线图
- java 数组的一些特殊用法
- 【开发】在Lua中如何实现易景地球的事件响应
- FutureTask
- Android HAL实例解析 led示例
- BZOJ 2467 中山市选2010 生成树 组合数学
- 策略模式
- JSP checkbox 获取ID的问题
- Python 字符串和编码问题
- Spring mvc+hibernate+freemarker(开源项目)
- 多线程之wait()
- Nodejs异步流程控制Async