zoukankan      html  css  js  c++  java
  • 线程池Executors、Callable与Future的应用

    package com.mrm.test.action;
    
    import java.util.Random;
    import java.util.concurrent.*;
    
    public class test {
        public static void main(String[] args) {
            ExecutorService executorService = Executors.newSingleThreadExecutor();
            Future<String> future = executorService.submit(new Callable<String>() {
                @Override
                public String call() throws Exception {
                    Thread.sleep(1000);
                    return "hello";
                }
            });
            try {
                System.out.println("等待结果");
                System.out.println(future.get());
                executorService.shutdown();
            } catch (InterruptedException e) {
                e.printStackTrace();
            } catch (ExecutionException e) {
                e.printStackTrace();
            }
    
            ExecutorService executorService2 = Executors.newFixedThreadPool(10);
            CompletionService<Integer> completionService =
                    new ExecutorCompletionService<Integer>(executorService2);
            for (int i = 0; i < 10; i++) {
                final int seq = i;
                completionService.submit(new Callable<Integer>() {
                    @Override
                    public Integer call() throws Exception {
                        return seq;
                    }
                });
            }
    
            for (int i = 0; i < 10; i++) {
                try {
                    Thread.sleep(new Random().nextInt(3000));
                    System.out.println(completionService.take().get());
                } catch (InterruptedException e) {
                    e.printStackTrace();
                } catch (ExecutionException e) {
                    e.printStackTrace();
                }
            }
            executorService.shutdown();
            executorService2.shutdown();
        }
    
    }
    
    
  • 相关阅读:
    奔溃瞬间1
    面试知识点blog汇总
    贪心
    树 和 图
    DFS 和 BFS
    STL
    哈希表
    手写堆
    并查集
    二项式反演学习笔记
  • 原文地址:https://www.cnblogs.com/liclBlog/p/15349496.html
Copyright © 2011-2022 走看看