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