zoukankan      html  css  js  c++  java
  • 一个简单的通过newFixedThreadPool实现多线程案例

    1、异步提交,串行改为并行处理

    package com.hao.thread;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    import java.util.concurrent.Future;
    
    public class ThreadTest {
    
        public static void main(String[] args) {
            long start = System.currentTimeMillis();
            System.out.println(action());
            long end = System.currentTimeMillis();
            System.out.println(end - start);
        }
    
        public static List<String> action() {
            List<String> list = new ArrayList<String>();
            ExecutorService pool = Executors.newFixedThreadPool(3);
            Future<String> submit1 = pool.submit(() -> action1("action1"));
            Future<String> submit2 = pool.submit(() -> action2("action2"));
            Future<String> submit3 = pool.submit(() -> action3("action3"));
            try {
                list.add(submit1.get());
                list.add(submit2.get());
                list.add(submit3.get());
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                pool.shutdown();
            }
            return list;
        }
    
        private static String action1(String action1) {
            sleep(5000);
            return action1 + " # " + Thread.currentThread().getName();
        }
    
        private static String action2(String action2) {
            sleep(5000);
            return action2 + " # " + Thread.currentThread().getName();
        }
    
        private static String action3(String action3) {
            sleep(5000);
            return action3 + " # " + Thread.currentThread().getName();
        }
    
        private static void sleep(long millis) {
            try {
                Thread.sleep(millis);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

    2、处理结果

  • 相关阅读:
    DDR的前世与今生(二)
    DDR的前世与今生(一)
    层叠设计与串扰控制
    层叠设计流程及信号回流与参考平面
    布线层数规划
    [转]PCIe接口管脚说明
    [转]UDP主要丢包原因及具体问题分析
    [转]a10 pcie dma应用简单介绍
    [转]Altera Arria10 FPGA PCIe Avalon-MM DMA设计
    [转]Altium Designer 差分线、等长线
  • 原文地址:https://www.cnblogs.com/zhanh247/p/12402425.html
Copyright © 2011-2022 走看看