`
liyonghui160com
  • 浏览: 761414 次
  • 性别: 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中的Callable接口最全讲义

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

    使用Java异步编程实现一个简单的网络请求.txt

    这两个任务被封装成Callable对象并返回一个Future对象,用于表示异步计算的结果。 在主线程中,我们通过调用response1.get()和response2.get()方法来获取异步计算的结果。由于这两个方法都是阻塞的(即等待异步计算...

    \java超强笔记(超级经典)

    全部是txt格式的,容量小,以下内容为其中之一: 5.0新特性: 泛型: ... 运行Callable任务可拿到一个Future对象,通过Future对象可了解任务执行情况,可取消任务的执行,还可获取任务执行的结果。

    java8源码-concurrency:java并发总结

    获取线程执行结果的原理:以 ThreadPoolExecutor 为例(实现 ExecutorService 接口), 其 submit() 方法提交任务, 返回 一个 FutureTask 实例,这个实例 outcome 成员变量用于存储线程的执行结果, state 成员变量...

    Java并发编程实战

    6.3.2 携带结果的任务Callable与Future103 6.3.3 示例:使用Future实现页面渲染器104 6.3.4 在异构任务并行化中存在的局限106 6.3.5 CompletionService:Executor与BlockingQueue106 6.3.6 示例:使用...

    Java JDK实例宝典

    11 线程——Callable和Future 16. 12 线程——任务执行架构 16. 13 线程——锁Lock 16. 14 线程——条件Condition 16. 15 线程——Semaphore 16. 16 线程——CountDownLatch 16. 17 线程...

    疯狂JAVA讲义

    9.1.3 使用BufferedReader获取键盘输入 318 9.2 系统相关 319 9.2.1 System类 319 9.2.2 Runtime类 321 9.3 常用类 322 9.3.1 Object类 322 9.3.2 String、StringBuffer和StringBuilder类 322 9.3.3 Math类 ...

    javaSE代码实例

    17.2.3 Callable与Future接口的具体使用 385 17.3 资源的封锁 386 17.3.1 Lock接口与ReentrantLock类简介 386 17.3.2 ReentrantLock锁的具体使用 387 17.3.3 ReadWriteLock接口与ReentrantReadWriteLock类...

    JAVA核心知识点整理(有效)

    1. 目录 1. 2. 目录 .........................................................................................................................................................1 JVM ........................

    java核心知识点整理.pdf

    1. 目录 1. 2. 目录 .........................................................................................................................................................1 JVM .........................

Global site tag (gtag.js) - Google Analytics