ThreadPoolExecutor 是一個線程池的實現類,可以用來管理和執行多個線程任務。使用 ThreadPoolExecutor 需要以下幾個步驟:
ThreadPoolExecutor executor = new ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, TimeUnit, workQueue);
corePoolSize:核心線程數,線程池中始終保持的活動線程數。
maximumPoolSize:最大線程數,線程池中允許的最大線程數。
keepAliveTime:線程的空閑時間,當線程池中的線程數量超過核心線程數時,多余的空閑線程在等待任務時的最長存活時間。
TimeUnit:keepAliveTime 的時間單位。
workQueue:任務隊列,用于保存等待執行的任務。
executor.execute(new Runnable() {
@Override
public void run() {
// 執行任務的代碼
}
});
或者
Future<?> future = executor.submit(new Callable<Object>() {
@Override
public Object call() throws Exception {
// 執行任務的代碼,并返回結果
return result;
}
});
executor.shutdown();
或者
executor.shutdownNow();
shutdown():平緩地關閉線程池,等待所有任務執行完畢后關閉。
shutdownNow():立即關閉線程池,不等待任務執行完畢。
以上是 ThreadPoolExecutor 的基本用法,還可以根據需要設置一些其他屬性,如拒絕策略、線程工廠等。具體可以參考 ThreadPoolExecutor 的文檔。