Java Callable和Future学习
来源:才华咖 本文已影响1.66W人
来源:才华咖 本文已影响1.66W人
导语:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。下面我们来看看JavaCallable和Future学习,希望对大家有所帮助。
常见用法
一般Callable和Future搭配使用的方法如下:
把Callable任务提交给线程池,线程池给我们返回一个Future对象;
然后我们通过Future拿到一个结果;
说明:线程池帮我们做了太多事情,而且封装起来,这样子我们理解底层机制就非常困难,毕竟距离冰冷的现实越远,对底层越难以理解;
原理概述
线程池背后做的事情如下:
把Callable转换为FutureTask(这个对象实现了Futuure和Runnable接口,并且包含Callable属性);
线程把FutureTask当做Runnable进行调度,在真正执行的时候调用的是FutureTask中的`run方法,这个方法干的事情就是:
调用Callable的call方法,然后再把结果放到FutureTask的属性outcome上,
这样,当我们FutureTask调用get方法(实现了Futuure的get方法),(当然完成的情况下)就给我们返回outcome;
如何理解Javascript的caller,callee,call,apply区别
如何理解Javascript的caller,callee,call,apply区别
如何理解Javascript的caller,callee,call,apply区别
如何理解Javascript的caller,callee,call,apply区别
如何理解Javascript的caller,callee,call,apply区别
如何理解Javascript的caller,callee,call,apply区别
如何理解Javascript的caller,callee,call,apply区别
如何理解Javascript的caller,callee,call,apply区别
如何理解Javascript的caller,callee,call,apply区别
如何理解Javascript的caller,callee,call,apply区别
如何理解Javascript的caller,callee,call,apply区别
如何理解Javascript的caller,callee,call,apply区别
如何理解Javascript的caller,callee,call,apply区别
如何理解Javascript的caller,callee,call,apply区别
如何理解Javascript的caller,callee,call,apply区别
oracle中truncatetable后的数据如何恢复
java.util.ArrayDeque类使用方法介绍
《You Cant Judge a William by Its Cover》英语美文欣赏
学个词Learn a Word:casualty
英语阅读:Tobacco Plant to Make Jet Fuel
关于Java中Queue和BlockingQueue的区别
如何实现bootstrap jquery dataTable异步ajax刷新表格数据
英语阅读美文True Love Always Prevails
java学习心得
7B Unit5 Abilities第四课时Vcabular教学案
高二英语作文:You can’t be an Apple Loved by All
JavaScript中null和undefined的异同
java顶岗实习周记模板
503service unavailable错误提示解决方法
Perseverance will make you successful英语作文
英语习惯用语:just for laughs; laugh up ones sleeve
英语阅读:African Union Leaders Talk Mali, Chinese Investmen
Java学习计划范例
whats your plan for dragon boat festival英语作文
了解HTML中table表格的frame和rules属性
Cultivate Your ReadingHabit培养阅读习惯方法
The world Cup Football Final英语作文
java程序员学习Flex和BlazeDS有什么好处
JAVA和WAP移动学习技术
To be really happy and really safe优秀英语作文