是的,您可以自定义 newCachedThreadPool
。newCachedThreadPool
是 Java 中的一种线程池实现,它可以根据需要创建新线程,但会重用已创建的线程。当线程池中的线程完成任务后,它们会被放入一个缓存中,以便在将来有新的任务时重新使用。
要自定义 newCachedThreadPool
,您需要使用 ThreadPoolExecutor
类。以下是一个示例,展示了如何创建一个自定义的 newCachedThreadPool
:
import java.util.concurrent.*; public class CustomCachedThreadPool { public static void main(String[] args) { int corePoolSize = 5; // 核心线程数 int maximumPoolSize = 10; // 最大线程数 long keepAliveTime = 60L; // 空闲线程的存活时间(单位:秒) TimeUnit unit = TimeUnit.SECONDS; // 存活时间的单位 BlockingQueueworkQueue = new LinkedBlockingQueue<>(); // 任务队列 ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor( corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue ); // 使用自定义的线程池执行任务 for (int i = 0; i < 20; i++) { threadPoolExecutor.execute(() -> { System.out.println("Task executed by thread: " + Thread.currentThread().getName()); }); } // 关闭线程池 threadPoolExecutor.shutdown(); } }
在这个示例中,我们创建了一个包含 5 个核心线程和最大 10 个线程的自定义 newCachedThreadPool
。空闲线程的存活时间为 60 秒。任务队列使用 LinkedBlockingQueue
实现。