本文目录一览:
- 1、什么是Callable和Future?
- 2、线程runnable和callable的区别
- 3、JAVA中Callable的call方法抛出的异常会抛到那里?
- 4、runnable和callable区别是什么?
什么是Callable和Future?
1、Callable接口使用泛型去定义它的返回类型。Executors类提供了一些有用的方法去在线程池中执行Callable内的任务。由于Callable任务是并行的,必须等待它返回的结果。java.util.concurrent.Future对象解决了这个问题。
2、可以看到,这是一个泛型接口,call()函数返回的类型就是客户程序传递进来的V类型,且该接口往往与Future结合使用。关于Future,源码中的注释如下:尝试取消此任务的执行。
3、通过实现Runnable接口的线程类,是互相共享资源的。 使用Callable和Future创建线程 从继承Thread类和实现Runnable接口可以看出,上述两种方法都不能有返回值,且不能声明抛出异常。
4、通过Callable和Future创建线程 (1)创建Callable接口的实现类,并实现call()方法,该call()方法将作为线程执行体,并且有返回值。
5、mFuture 是什么?答案在 AsyncTask 的构造函数中: 原来mWorker 是一个 Callable 对象, mFuture 是一个 FutureTask 对象,继承了 Runnable 接口。
6、Callable 和 Future接口 Callable是类似于Runnable的接口,实现Callable接口的类和实现Runnable的类都是可被其它线程执行的任务。
线程runnable和callable的区别
意义区别:Runnable接口中的run()方法的返回值是void,它做的事情只是纯粹地去执行run()方法中的代码而已;Callable接口中的call()方法是有返回值的,是一个泛型,和Future、FutureTask配合可以用来获取异步执行的结果。
从继承Thread类和实现Runnable接口可以看出,上述两种方法都不能有返回值,且不能声明抛出异常。而Callable接口则实现了此两点,Callable接口如同Runable接口的升级版,其提供的call()方法将作为线程的执行体,同时允许有返回值。
这里为什么要将Runnable转化为Callable哪?首先看一下两者之间的区别:最关键的是第二点,就是Callable具有返回值,而Runnable没有返回值。Callable提供了检查计算是否完成的方法,以等待计算的完成,并获取计算的结果。
Callable接口与Runnable接口的功能类似,但提供了比Runnable更加强大的功能。Callable可以在任务结束的时候提供一个返回值,Runnable无法提供这个功能,Callable的call方法分可以抛出异常,而Runnable的run方法不能抛出异常。
JAVA中Callable的call方法抛出的异常会抛到那里?
Callable可以在任务结束的时候提供一个返回值,Runnable无法提供这个功能,Callable的call方法分可以抛出异常,而Runnable的run方法不能抛出异常。
注意到图1中的call方法是有抛出异常的,而平时经常创建Runnable子类的时候,我们在重写run方法时在遇到异常的时候只能进行try-catch捕获,而不能进行异常的抛出。
Callable 使用 call() 方法, Runnable 使用 run() 方法 call() 可以返回值, 而 run()方法不能返回。call() 可以抛出受检查的异常,比如ClassNotFoundException, 而run()不能抛出受检查的异常。
runnable和callable区别是什么?
1、意义区别:Runnable接口中的run()方法的返回值是void,它做的事情只是纯粹地去执行run()方法中的代码而已;Callable接口中的call()方法是有返回值的,是一个泛型,和Future、FutureTask配合可以用来获取异步执行的结果。
2、面对阿珍的灵魂拷问,老徐淡定自若地说:“ Runnable 是用于提供多线程任务支持的核心接口, Callable 是在Java 5中添加的 Runnable 的改进版本。”“在聊它们不同之前,我们先分别了解一下两个接口。
3、Holder技术是Poco框架中经常用到的,是对某一种类型对象的指针包装。
4、继承Thread类 优点 、代码简单 。缺点 、该类无法集成别的类。实现Runnable接口 优点 、继承其他类。同一实现该接口的实例可以共享资源。
5、Java5在concurrency包中引入了java.util.concurrent.Callable接口,它和Runnable接口很相似,但它可以返回一个对象或者抛出一个异常。Callable接口使用泛型去定义它的返回类型。
6、线程创建方式及优缺点 继承Thread类 实现Runnable接口实现Callable接口 线程池方式 优缺点 继承Thread类 优点 、代码简单 。缺点 、该类无法集成别的类。实现Runnable接口 优点 、继承其他类。