java 多线程-线程的状态

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 多线程-线程的状态相关的知识,希望对你有一定的参考价值。

观察线程的状态
State state=Thread对象.getState();
int num=Thread.activeCount();//当前活跃的线程个数

public class n 

public static void main(String[]args) throws InterruptedException

    Thread t =new Thread(()->
        for(int i=0;i<5;i++)
        
            try 
                Thread.sleep(100);
             catch (InterruptedException e) 
                e.printStackTrace();
            
        System.out.println("a");
        
    );
    //观察状态
    State state=t.getState();
    System.out.println(state);//创建的对象处于NEW新生状态

    t.start();
    state=t.getState();
    System.out.println(state);//处于RUNNABLE

    while(state!=Thread.State.TERMINATED)
    

        System.out.println(num);
        Thread.sleep(200);
        state =t.getState();//TIMED_WAITING
        System.out.println(state);
    
    **或者:**
    while(true)
    
        int num=Thread.activeCount();//当前活动的线程数,包括主线程一共有两个
        if(num==1)
        
            break;
        
        System.out.println(num);
        Thread.sleep(200);
        state=t.getState();
        System.out.println(state);
    
    state=t.getState();
    System.out.println(state);//TERMINATED


以上是关于java 多线程-线程的状态的主要内容,如果未能解决你的问题,请参考以下文章

Java入门——多线程

Java多线程:线程状态

在java多线程程序中,怎样实时找出处于等待(阻塞)状态线程、进程的个数。

java多线程

java多线程

Java多线程基础-第一节3:线程状态和线程安全