執行緒池是一種多執行緒處理形式,處理過程中將任務新增至佇列,然後在建立執行緒後自動啟動這些任務。線程池線程都是後台線程。每個執行緒都使用預設的堆疊大小,以預設的優先權運行,並處於多執行緒單元中。
如果某個執行緒在託管程式碼中空閒(如正在等待某個事件),則執行緒池將插入另一個輔助執行緒來使所有處理器保持繁忙。
如果所有執行緒池執行緒都保持繁忙,但佇列中包含掛起的工作,則執行緒池將在一段時間後建立另一個輔助執行緒但執行緒的數目永遠不會超過最大值。超過最大值的執行緒可以排隊,但他們要等到其他執行緒完成後才啟動。 (推薦學習:java課程)
Java四個執行緒池的使用:
newCachedThreadPool
建立一個可快取執行緒池,如果執行緒池長度超過處理需要,可靈活回收空閒線程,若無可回收,則新建線程。範例程式碼如下:package test; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class ThreadPoolExecutorTest { public static void main(String[] args) { ExecutorService cachedThreadPool = Executors.newCachedThreadPool(); for (int i = 0; i < 10; i++) { final int index = i; try { Thread.sleep(index * 1000); } catch (InterruptedException e) { e.printStackTrace(); } cachedThreadPool.execute(new Runnable() { public void run() { System.out.println(index); } }); } } }
以上是在java中執行緒池是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!