Java的ThreadPoolExecutor
是一個用于執行和管理線程的類,它可以幫助你更有效地控制并發任務的執行。下面是一個簡單的示例,展示了如何使用ThreadPoolExecutor
來執行一組任務:
import java.util.concurrent.*;
ThreadPoolExecutor
實例:int corePoolSize = 5; // 核心線程數
int maximumPoolSize = 10; // 最大線程數
long keepAliveTime = 60L; // 空閑線程的存活時間(單位:秒)
TimeUnit unit = TimeUnit.SECONDS; // 存活時間的單位
BlockingQueue<Runnable> workQueue = new LinkedBlockingQueue<>(20); // 任務隊列
ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(
corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue);
ThreadPoolExecutor
:for (int i = 0; i < 20; i++) {
int finalI = i;
threadPoolExecutor.submit(() -> {
System.out.println("Task " + finalI + " is executed by thread " + Thread.currentThread().getName());
});
}
ThreadPoolExecutor
:threadPoolExecutor.shutdown();
try {
if (!threadPoolExecutor.awaitTermination(60, TimeUnit.SECONDS)) {
threadPoolExecutor.shutdownNow();
}
} catch (InterruptedException e) {
threadPoolExecutor.shutdownNow();
}
這個示例中,我們創建了一個ThreadPoolExecutor
實例,設置了核心線程數、最大線程數、空閑線程存活時間等參數。然后,我們提交了20個任務到ThreadPoolExecutor
,并等待所有任務執行完成。最后,我們關閉了ThreadPoolExecutor
。
注意:在實際應用中,你可能需要根據具體需求調整corePoolSize
、maximumPoolSize
、keepAliveTime
等參數。此外,你還可以使用Executors
類提供的工廠方法(如newFixedThreadPool()
、newCachedThreadPool()
等)來創建ThreadPoolExecutor
實例,而無需手動設置這些參數。