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实例,而无需手动设置这些参数。