首頁  >  文章  >  Java  >  在java中執行緒池是什麼

在java中執行緒池是什麼

(*-*)浩
(*-*)浩原創
2019-11-12 09:03:012267瀏覽

執行緒池是一種多執行緒處理形式,處理過程中將任務新增至佇列,然後在建立執行緒後自動啟動這些任務。線程池線程都是後台線程。每個執行緒都使用預設的堆疊大小,以預設的優先權運行,並處於多執行緒單元中

在java中執行緒池是什麼

如果某個執行緒在託管程式碼中空閒(如正在等待某個事件),則執行緒池將插入另一個輔助執行緒來使所有處理器保持繁忙。

如果所有執行緒池執行緒都保持繁忙,但佇列中包含掛起的工作,則執行緒池將在一段時間後建立另一個輔助執行緒但執行緒的數目永遠不會超過最大值。超過最大值的執行緒可以排隊,但他們要等到其他執行緒完成後才啟動。 (推薦學習:java課程

Java四個執行緒池的使用:

##Java透過Executors提供四個執行緒池,分別為:


newCachedThreadPool建立一個可快取線程池,如果線程池長度超過處理需要,可靈活回收空閒線程,若無可回收,則新建線程。


newFixedThreadPool 建立一個定長執行緒池,可控制執行緒最大並發數,超出的執行緒會在佇列中等待。


newScheduledThreadPool 建立一個定長執行緒池,支援定時及週期性任務執行。


newSingleThreadExecutor 建立一個單執行緒化的執行緒池,它只會用唯一的工作執行緒來執行任務,並保證所有任務都按照指定順序(FIFO, LIFO, 優先權)執行。


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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn