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;
        }
    }
  • 相关阅读:
    [转]OOA/OOD/OOP区别
    Get / Post
    1.PHP环境搭配
    6.WCF Rest
    消除关闭按钮时的IE弹出提示
    TSQL DML学习笔记
    javascript 中类的定义
    $().each() 与 $.each()区别,以及 jquery ajax 应用
    TSQL 数据库的创建
    删除用户表 存储过程 索引..
  • 原文地址:https://www.cnblogs.com/zhangfengshi/p/9230556.html
Copyright © 2011-2022 走看看