欢迎光临散文网 会员登陆 & 注册

多线程运行状态的代码

2020-04-12 09:43 作者:小垃圾kiki  | 我要投稿
package cn.jd.state;

import java.lang.Thread.State;

/*
 * 观察线程的状态
 */
public class AllState {
    public static void main(String[] args) {
        Thread t=new Thread(()->{
            for(int i=0;i<5;i++) {
                try {
                    Thread.sleep(100);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            System.out.println("你好");
        });
        //观察线程的状态
        State state=t.getState();
//        System.out.println(state);//处于NEW的状态新生状态
        t.start(); //处于Runnable,处于就绪和运行状态,因为运行状态是由CPU控制的,不是我们控制的
//        state=t.getState();
//        System.out.println(state);
//        while(state!=Thread.State.TERMINATED) {
//            try {
//                Thread.sleep(200);
//            } catch (InterruptedException e) {
//                // TODO Auto-generated catch block
//                e.printStackTrace();
//            }
//            state=t.getState();
//            System.out.println(state);
//        }
        while(true) {
            int num=Thread.activeCount();  //活动的线程数
            try {
                Thread.sleep(200);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            System.out.println(num);
            if(num==1) {
                break;
            }
            state=t.getState();
            System.out.println(state);
            
        }
    }
    

}

多线程运行状态的代码的评论 (共 条)

分享到微博请遵守国家法律