Thread多執行緒5-執行緒池
阿新 • • 發佈:2022-03-25
執行緒池
-
背景:經常建立和銷燬、使用量特別大的資源,比如併發情況下的執行緒,對效能影響很大;
-
思路:提前建立好多個執行緒,放入執行緒池,使用時直接獲取,使用完放回執行緒池,可以變頻繁建立銷燬,實現複用;
-
好處:
- 提高響應速度(減少了建立執行緒的時間);
- 降低資源消耗(重複利用執行緒池中執行緒,不需要每次都建立);
- 便於執行緒管理
corePoolSize:核心執行緒池的大小;
maximumPoolSize:最大執行緒數;
keepAliveTime:執行緒沒有任務是,最多保持多長時間後終止;
public class ThreadPool { public static void main(String[] args) { //1.建立服務,建立執行緒池 ExecutorService executorService = Executors.newFixedThreadPool(10); executorService.execute(new MyThread()); executorService.execute(new MyThread()); executorService.execute(new MyThread()); executorService.submit(new MyThread()); executorService.submit(new MyThread()); //2.關閉連線 executorService.shutdown(); } } class MyThread implements Runnable{ @Override public void run() { System.out.println(Thread.currentThread().getName()); } }