您好,登錄后才能下訂單哦!
本篇文章為大家展示了如何在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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。