【摘要】:Callable接口中提供了call()方法,被调用时用来执行线程,并且会有返回值,返回值类型为Future接口的实现类。Callable接口的定义如下:Future接口是与Callable接口配合使用的,也位于java.util.concurrent包中,提供了用来检测线程是否被执行完成的方法,并在任务执行完成时获得结果。动手写16.2.3其运行结果为:图16.2.3实现Callable接口创建线程
Callable接口是Java 5新增的接口,位于java.util.concurrent包中,其使用类似于Runnable。Callable接口中提供了call()方法,被调用时用来执行线程,并且会有返回值,返回值类型为Future接口的实现类。同时,call()方法声明了抛出异常。
Callable接口的定义如下:
Future接口是与Callable接口配合使用的,也位于java.util.concurrent包中,提供了用来检测线程是否被执行完成的方法,并在任务执行完成时获得结果。另外,Future接口支持设置线程执行的超时时间。
Future接口中的常见方法如表16.2.2所示。
表16.2.2 Future接口中的常见方法
(续上表)
FutureTask类同时实现了Runnable接口和Future接口,可以作为Thread类的target入参来创建线程,同时也可以使用Future接口中的call()方法来获取返回值。
使用Callable接口和Future接口创建并启动线程的步骤如下:(www.xing528.com)
1.声明实现Callable接口的类,实现call()方法,并定义返回值类型;
2.创建实现Callable类的对象,使用FutureTask类包装Callable对象;
3.创建Thread对象,使用FutureTask对象作为Thread对象的target入参,并启动线程;
4.使用FutureTask对象的get()方法来获取线程结束后的返回值。
动手写16.2.3
其运行结果为:
图16.2.3 实现Callable接口创建线程
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。