面试题答案
一键面试可以通过getState
方法获取线程池状态,然后与RUNNING
状态值进行比较。ThreadPoolExecutor
类中定义了线程池状态的相关常量,RUNNING
状态值为负数。
关键代码片段如下:
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.Executors;
public class ThreadPoolStateExample {
public static void main(String[] args) {
ThreadPoolExecutor executor = (ThreadPoolExecutor) Executors.newFixedThreadPool(5);
if ((executor.getState() & ThreadPoolExecutor.RUNNING) == ThreadPoolExecutor.RUNNING) {
System.out.println("线程池处于RUNNING状态");
} else {
System.out.println("线程池不处于RUNNING状态");
}
}
}