`
liyonghui160com
  • 浏览: 775533 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Callable+Future获取执行结果

    博客分类:
  • java
阅读更多

 

 

public class Test {
    public static void main(String[] args) {
        ExecutorService executor = Executors.newCachedThreadPool();
        Task task = new Task();
        Future<Integer> result = executor.submit(task);
        executor.shutdown();
         
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e1) {
            e1.printStackTrace();
        }
         
        System.out.println("主线程在执行任务");
         
        try {
            System.out.println("task运行结果"+result.get());
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (ExecutionException e) {
            e.printStackTrace();
        }
         
        System.out.println("所有任务执行完毕");
    } 
}
class Task implements Callable<Integer>{
    @Override
    public Integer call() throws Exception {
        System.out.println("子线程在进行计算");
        Thread.sleep(3000);
        int sum = 0;
        for(int i=0;i<100;i++)
            sum += i;
        return sum;
    }
}

 

分享到:
评论

相关推荐

    Java中的Runnable,Callable,Future,FutureTask的比较

    这段代码展示了如何创建一个Callable任务,使用ExecutorService提交任务,然后通过Future获取结果。当调用`future.get()`时,程序会阻塞,直到任务完成并返回结果。这样,开发者可以在主线程中等待异步任务的完成,...

    Callable和Future.doc

    Callable 和 Future 是 Java 多线程编程中两个重要的接口,它们在处理异步计算和结果获取方面发挥着关键作用。Callable 与 Runnable 相似,但具有更强大的功能,允许任务返回结果并处理异常。 Callable 接口: ...

    java并发包之Callable和Future

    `submit`方法不仅将任务提交到线程池执行,还会返回一个`Future`对象,我们可以使用这些`Future`对象来获取异步计算的结果。 `Future`接口提供了获取任务结果的方法`get()`,这个方法会阻塞直到任务完成并返回结果...

    Android(Java)之多线程结果返回——Future 、FutureTask、Callable、Runnable

    总结一下,`Runnable`用于无返回值的简单任务,`Callable`用于有返回值的任务,`Future`作为结果的容器,而`FutureTask`则将两者结合,使得`Callable`的任务可以通过`ExecutorService`执行。在实际开发中,根据需求...

    Java多线程Callable和Future接口区别

    Future接口则用于描述异步计算的结果,我们可以通过Future对象来了解任务执行情况,并获取任务执行的结果。 在实际开发中,我们可以使用Callable和Future接口来实现异步计算。例如,我们可以使用Callable接口来实现...

    java通过Callable和Future来接收线程池的执行结果

    通过这个示例代码,我们可以看到,使用Callable和Future接口可以很方便地获取到线程执行的结果,并且可以及时地感知到线程执行中的错误。这对我们的开发工作具有重要的参考价值。 知识点: 1. Java中的线程池执行...

    Callable:Callable与Future在Web应用中的优化案例

    Future接口则代表Callable任务的未来结果,它可以用于查询任务是否完成、获取结果或取消任务。Future提供了异步执行任务的能力,这样主线程无需等待任务完成,可以继续执行其他任务,从而提高程序的并发性。例如: ...

    浅谈在Java中使用Callable、Future进行并行编程

    传统的并行编程方式包括继承Thread类或实现Runnable接口,但这些方法在任务完成后无法直接获取执行结果,需要通过复杂的线程同步机制来实现。从Java 1.5开始,引入了Callable和Future接口,为并行编程提供了一种更为...

    详解JDK中ExecutorService与Callable和Future对线程的支持

    ExecutorService用于管理和执行线程池中的线程,Callable用于返回某个结果,Future用于获取异步计算的结果。它们之间的紧密相连,共同实现了高效、安全的并发编程。 在实际应用中,我们可以使用ExecutorService、...

    JAVA中Callable的使用

    当我们需要在线程中执行一个计算任务并获取结果时,Callable就非常有用。 1. **创建Callable任务** 创建一个Callable任务,你需要定义一个类实现Callable接口,并重写`call()`方法。`call()`方法的返回类型是你...

    java callable(多线程)

    3. **结果的获取**:由于`Callable`任务可以返回结果,因此执行`Callable`任务后会返回一个`Future`对象,这个对象提供了对异步计算的结果的访问。通过调用`Future`对象的`get()`方法,可以阻塞等待任务完成并获取...

    java Callable与Future的详解及实例

    Callable 接口类似 Runnable,但提供了更丰富的功能,而 Future 对象则用于管理和控制异步计算的结果。 **Callable 接口** Callable 接口与 Runnable 相比,具有以下特点: 1. **方法不同**:Callable 接口中定义了...

    详解Java Callable接口实现多线程的方式

    Callable接口和Future接口的组合使用,能够实现多线程并发执行任务,并获取执行结果。 一、Callable接口简介 Callable接口是一个泛型接口,用于表示可以调用并返回结果的代码。它提供了一个call()方法,该方法...

    Java concurrency线程池之Callable和Future_动力节点Java学院整理

    Callable用于产生结果,Future用于获取结果。 Future Future是一个接口。它用于表示异步计算的结果。提供了检查计算是否完成的方法,以等待计算的完成,并获取计算的结果。Future的源码如下: public interface ...

    java自定义任务类定时执行任务示例 callable和future接口使用方法

    在Java多线程编程中,`Callable`接口和`Future`接口是两个重要的组件,它们提供了比`Runnable`接口更强大的功能,尤其是在处理异步计算和结果获取时。本文将详细介绍这两个接口以及如何使用它们来创建自定义任务类以...

    Java多线程下的其他组件之CyclicBarrier、Callable、Future和FutureTask详解

    FutureTask包含了Callable任务和对其结果的封装,当我们调用FutureTask的start()方法时,它会在新的线程上执行Callable的call()方法,并返回一个Future对象,用于后续的结果获取。 结合这些组件,我们可以构建复杂...

    Java利用future及时获取多线程运行结果

    但是,直接使用Future的结果需要通过isDone()方法来判断是否有结果,或者使用get()函数来阻塞式获取执行结果,这样就会失去实时跟踪其他线程的结果状态。 为了解决这个问题,可以使用CompletionService,它内部添加...

    Java中的Callable接口最全讲义

    目录: 简介 Callable接口的基本用法 ...2.3 获取任务执行结果 Future接口的使用 3.1 获取任务执行状态 3.2 取消任务的执行 Callable与Runnable的对比 Callable的异常处理 Callable的应用场景 最佳实践与注意事项

    MapReduce,泛型,匿名内部类,Runnable和Callable

    在上述代码中,executorService是ExecutorService的一个实例,它可以管理和控制线程的执行,而Future对象则用来获取Callable任务的执行结果。 了解这些技术对于处理大型数据处理、并发编程和优化代码质量至关重要。...

    多线程执行完后主程序再执行(包括需要子线程返回结果)

    本文将详细探讨如何在多线程环境中确保所有子线程执行完毕后,主程序再进行后续操作,并且如何获取子线程的返回结果。这涉及到线程的同步与通信,是理解并发编程的关键点。 首先,多线程执行时,主线程会创建并启动...

Global site tag (gtag.js) - Google Analytics