面试题答案
一键面试- 涉及的类和方法
- 在Java AIO编程中,通常使用
ThreadPoolExecutor
类来创建和管理线程池。要获取ThreadPoolExecutor
类型线程池当前的大小,可以使用getPoolSize
方法。
- 在Java AIO编程中,通常使用
- 原理
ThreadPoolExecutor
类是Java线程池的核心实现类。它维护了线程池运行过程中的各种状态和统计信息。getPoolSize
方法返回的是当前线程池中正在运行的线程数量。这包括了正在执行任务的线程以及处于空闲状态等待任务分配的线程。
以下是一个简单示例代码:
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;
public class AIOThreadPoolSizeExample {
public static void main(String[] args) {
ExecutorService executorService = Executors.newFixedThreadPool(5);
ThreadPoolExecutor threadPoolExecutor = (ThreadPoolExecutor) executorService;
int poolSize = threadPoolExecutor.getPoolSize();
System.out.println("当前线程池大小: " + poolSize);
executorService.shutdown();
}
}
在上述代码中,首先通过Executors.newFixedThreadPool(5)
创建了一个固定大小为5的线程池,然后将其转换为ThreadPoolExecutor
类型,通过调用getPoolSize
方法获取并输出当前线程池的大小。最后调用shutdown
方法关闭线程池。