Java线程的状态可以通过Thread类提供的getState()方法来判断。getState()方法返回一个枚举值,表示线程的状态,常用的枚举值有:
1. NEW:线程刚创建,还未启动;
2. RUNNABLE:线程正在执行;
3. BLOCKED:线程因为等待锁资源而被阻塞;
4. WAITING:线程正在等待另一个线程执行特定的操作;
5. TIMED_WAITING:线程正在等待另一个线程执行特定的操作,但有等待时间限制;
6. TERMINATED:线程执行完毕或者被中断。
示例代码如下:
Thread.State state = thread.getState(); if(state == Thread.State.NEW) {????System.out.println(“线程状态:NEW”); }?else?if(state?==?Thread.State.RUNNABLE)?{
????System.out.println(“线程状态:RUNNABLE”); }?else?if(state?==?Thread.State.BLOCKED)?{
????System.out.println(“线程状态:BLOCKED”); }?else?if(state?==?Thread.State.WAITING)?{
????System.out.println(“线程状态:WAITING”); }?else?if(state?==?Thread.State.TIMED_WAITING)?{
????System.out.println(“线程状态:TIMED_WAITING”); }?else?if(state?==?Thread.State.TERMINATED)?{
????System.out.println(“线程状态:TERMINATED”); }
需要注意的是,getState()方法只能获取当前线程的状态,无法获取其他线程的状态。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: java虚拟机命令如何优化内存使用