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、处理结果

  • 相关阅读:
    转:backbone.js源码解析:extend、Backbone.View
    转:前端单元测试总结
    转:JavaScript Promises相当酷:一种有趣的方案库
    npm发布模块
    转:nodejs npm常用命令
    nodejs守护进程forever
    转:SublimeText2 快捷键一览表
    转载7 Essential JavaScript Functions
    用node生成svg图片
    关于performance
  • 原文地址:https://www.cnblogs.com/zhanh247/p/12402425.html
Copyright © 2011-2022 走看看