MST
星途 面试题库

面试题:Java线程池中如何通过代码判断线程池处于RUNNING状态

在Java线程池的使用场景中,已知你有一个ThreadPoolExecutor实例,简述如何通过代码判断该线程池当前处于RUNNING状态,并给出关键代码片段。
41.1万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试

可以通过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状态");
        }
    }
}