首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Callable and Future in Java(java中的Callable和Future)

为了之处这个特性,在java中就增加了Callable接口。...Callable vs Runnable 为了实现Runnable接口,需要实现不返回任何返回值的run方法,而对于callable,我们需要实现在完成的时候,返回接口的call方法,注意,线程不能用Callable...需要注意的是,Callable和Future做了两件不同的事情,Callable和Runnable类似,因为它封装了一个任务,该任务在另外一个线程上运行,而Future用于存储从另外一个线程获得的结果,...FutureTask可以通过为其提供的构造函数来创建Callable,然后将FutureTask对象提供给Thread的构造函数来创建Thread对象。因此,间接的实现了Callable创建线程。...在此要重点强调的是,没有办法直接用Callable创建线程。

42530

Java并发之Executor + Callable + Future引入 Callable + FutureCallable + Future实例

引入 Callable + Future Callable + Future实例 引入 Callable + Future Executor框架的优势之一就是,可以运行并发任务并且返回结果。...这个接口就是 Callable接口:这个接口声明了一个call方法,类似于Runnable接口的run方法,是任务具体的逻辑,不同就在于可以有返回值,而且这个接口是一个泛型接口,这就意味着必须声明call...image.png Callable + Future实例 接下来,我们编写一个实例来接受任务的返回结果 实现一个Callable对象,由于返回值是Integer,所以定义为Callable<Integer...; public class FactorialCaculator implements Callable { private Integer number;...通过call方法获取返回结果,为了达到这个目的,可以使用get方法,这个方法会一直等到callable对象的call方法返回结果。如果此时任务尚未完成,get方法就会一直阻塞到线程完成。

28230

简单理解Callable接口

Callable接口:   Callable,新启线程的一种方式,返回结果并且可能抛出异常的任务,在前面的新启线程的文章中用过,但是没有具体讲解   优点:     可以获取线程的执行结果,也称为返回值...    通过与Future的结合,可以实现利用Future来跟踪异步计算的结果 Runnable和Callable的区别:   Callable规定的方法是call(),Runnable规定的接口是run...();   Callable的任务执行后可返回值,而Runnable的任务是不能有返回值的;   call方法可以抛出异常,run方法不可以   运行Callable任务可以拿到一个Future对象,表示异步计算的结果...或者Runnable接口的实现对象,因为FutureTask实现了Runnable接口,所以FutureTask也可以提交给线程池 Callable,Future,FutureTask三者之间的关系:...image.png Callable的两种执行方式: 1:借助FutureTask,包装Callable接口的实现类,然后传递给Thread线程执行 package org.dance.day2.future

69151

6.实现 Callable 接口

6.实现 Callable 接口 前言 本篇章来介绍一下创建线程的第三种方式,其中创建线程一共有四种方式: 继承 Thread 类 实现 Runnable 接口 实现 Callable 接口 使用线程池的方式...那么下面我们来介绍一下 实现 Callable 接口的方式。...Callable 接口 - Java 5.0 在 java.util.concurrent 提供了一个新的创建执行线程的方式:Callable 接口 - Callable 接口类似于 Runnable...它既可以作为Runnable被线程执行,又可以作为Future得到Callable的返回值 代码示例 1.创建一个实现Callable的实现类, 可以通过设置泛型,指定call方法返回的类型 import...java.util.concurrent.Callable; //1.创建一个实现Callable的实现类, 可以通过设置泛型,指定call方法返回的类型 class CallableThread

45940

Java线程(七):Callable和Future

接着上一篇继续并发包的学习,本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果。        ...Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被线程执行后,可以返回值,这个返回值可以被...,下面来看一个简单的例子: public class CallableAndFuture { public static void main(String[] args) { Callable... callable = new Callable() { public Integer call() throws Exception {...下面来看另一种方式使用Callable和Future,通过ExecutorService的submit方法执行Callable,并返回Future,代码如下: public class CallableAndFuture

53500
领券