Java Callable和Future学习
导语: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;
-
java语言的接口与继承
Java是一个面向对象的语言。对程序员来说,这意味着要注意应中的数据和操纵数据的方法,而不是严格地用过程来思考。下面是小编分享的java语言的接口与继承,一起来看一下吧。大多数人认为,接口的意义在于顶替多重继承。众所周知Java没有c++那样多重继承的机制,但是却...
-
java图片处理功能介绍
java可实现缩放图像、切割图像、图像类型转换、彩色转黑白、文字水印、图片水印等常用功能,本文是本站小编搜索整理的关于java图片处理功能介绍,供参考学习,希望对大家有所帮助!想了解更多相关信息请持续关注我们应届毕业生考试网!代码如下复制代码importaComposi...
-
理解java中的关键字
synchronized关键字,代表这个方法加锁,相当于不管哪一个线程A每次运行到这个方法时,都要检查有没有其它正在用这个方法的线程B(或者CD等),有的话要等正在使用这个方法的线程B(或者CD)运行完这个方法后再运行此线程A,没有的话,直接运行它包括两种用法:synchronized方...
-
全面理解java中的异常处理机制精选
一、java异常总结:异常就是程序运行时出现不正常运行情况1.异常由来:通过java的类的形式对现实事物中问题的描述,并封住成了对象其实就是java对不正常情况描述后的对象体现2.对于问题的划分有两种:一种是严重的问题,一种是非严重的问题对于严重的,java通过Error类来...
相关文章
- 如何理解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区别
- java的String=a; a==null和a.equals(null)这两个判断有什么区别