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;
        }
    }
  • 相关阅读:
    三级菜单打怪升级,young -> plus -> pro
    Python注释是什么东东
    腾讯云中的mysql镜像数据定时同步到本机数据库
    linux重复命令的简洁化
    快速查询mysql中每个表的数据量
    MGR与MHA
    mysql基础练习
    mongo日常操作备忘
    MongoDB:删除操作
    MongoDB插入数据的3种方法
  • 原文地址:https://www.cnblogs.com/zhangfengshi/p/9230556.html
Copyright © 2011-2022 走看看