本篇文章为大家展示了如何在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、处理结果
上述内容就是如何在newFixedThreadPool环境中实现多线程,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。