如何通过newFixedThreadPool实现高效的多线程案例?

2026-04-30 05:032阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计300个文字,预计阅读时间需要2分钟。

如何通过newFixedThreadPool实现高效的多线程案例?

java

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

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实现高效的多线程案例?

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

本文共计300个文字,预计阅读时间需要2分钟。

如何通过newFixedThreadPool实现高效的多线程案例?

java

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

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实现高效的多线程案例?

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。