zoukankan      html  css  js  c++  java
  • Future.get(并发之从任务中产生返回值)

    import java.util.ArrayList;
    import java.util.List;
    import java.util.concurrent.Callable;
    import java.util.concurrent.ExecutionException;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    import java.util.concurrent.Future;
    
    /**
     * 如果你想在任务返回后带一个返回值,可以实现Callable接口<br>
     * executorService.submit返回带结果的future对象[执行了call方法后返回]<br>
     * 调用get会一直阻塞直到结果返回
     * 
     * @date:2018年6月26日
     * @author:zhangfs
     * 
     * 
     */
    public class CallableDemo implements Callable<String> {
    
        private int id;
    
        public CallableDemo(int id) {
            this.id = id;
        }
    
        public static void main(String[] args) {
            ExecutorService executorService = Executors.newCachedThreadPool();
            List<Future<String>> results = new ArrayList<Future<String>>();
            for (int i = 0; i < 10; i++) {
                results.add(executorService.submit(new CallableDemo(i)));
            }
            for (Future<String> future : results) {
                try {
                    System.out.println(future.get());
                } catch (InterruptedException | ExecutionException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } finally {
                    executorService.shutdown();
                }
            }
        }
    
        @Override
        public String call() throws Exception {
            // TODO Auto-generated method stub
            return "Result of CallableDemo is " + id;
        }
    }
  • 相关阅读:
    linux系统安装Mysql
    makefile通用模板
    makefile常用函数
    mysqlconnector安装
    linux添加默认路由route
    .h文件与.hpp文件的区别
    ubuntu20优化开机启动
    [javascript]js原型链以及原型链继承
    webpack4.*入门笔记
    图像编程:图片大小关系
  • 原文地址:https://www.cnblogs.com/zhangfengshi/p/9230556.html
Copyright © 2011-2022 走看看