ExecutorService是Java中對線程池定義的一個接口,它java.util.concurrent包中.java
建立一個什麼樣的ExecutorService的實例(即線程池)須要g根據具體應用場景而定,不過Java給咱們提供了一個Executors工廠類,它能夠幫助咱們很方便的建立各類類型ExecutorService線程池,Executors一共能夠建立下面這四類線程池:緩存
newCachedThreadPool 建立一個可緩存線程池,若是線程池長度超過處理須要,可靈活回收空閒線程,若無可回收,則新建線程。
newFixedThreadPool 建立一個定長線程池,可控制線程最大併發數,超出的線程會在隊列中等待。
newScheduledThreadPool 建立一個定長線程池,支持定時及週期性任務執行。
newSingleThreadExecutor 建立一個單線程化的線程池,它只會用惟一的工做線程來執行任務,保證全部任務按照指定順序(FIFO, LIFO, 優先級)執行。
注:Executors只是一個工廠類,它全部的方法返回的都是ThreadPoolExecutor、ScheduledThreadPoolExecutor這兩個類的實例。併發
簡單使用線程
ExecutorService executorService = Executors.newFixedThreadPool(10); executorService.execute(new Runnable() { public void run() { System.out.println("Asynchronous task"); } }); executorService.shutdown();