1、線程池說明
newCachedThreadPool創建緩存線程池,如果線程池的長度超過處理需要,則可以靈活回收空閑線程,如果不能回收,則可以創建新的線程。
newFixedThreadPool創建一個定長的線程池,可以控制線程的并發數,超過的線程在隊列中等待。
newScheduledThreadPool建立固定長線程池,支持定時和周期任務的執行。
newSingleThreadExecutor創建一個單線程化的線程池,只能用唯一的工作線程執行任務,保證所有任務按指定順序執行。
2、實例
class ThreadDemo extends Thread {
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + "正在執行");
}
}
class TestFixedThreadPool {
public static void main(String[] args) {
//創建一個可重用固定線程數的線程池
ExecutorService pool = Executors.newFixedThreadPool(2);
//創建實現了Runnable接口對象,Thread對象當然也實現了Runnable接口
Thread t1 = new ThreadDemo();
Thread t2 = new ThreadDemo();
Thread t3 = new ThreadDemo();
Thread t4 = new ThreadDemo();
Thread t5 = new ThreadDemo();
//將線程放入池中進行執行
pool.execute(t1);
pool.execute(t2);
pool.execute(t3);
pool.execute(t4);
pool.execute(t5);
//關閉線程池
pool.shutdown();
}
}
以上就是Java Executors中的四種線程池,希望對大家有所幫助。更多關于“java培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學,課程大綱緊跟企業需求,更科學更嚴謹,每年培養泛IT人才近2萬人。不論你是零基礎還是想提升,都可以找到適合的班型,千鋒教育隨時歡迎你來試聽。