观察线程状态 10

package Runnable1;
//观察测试线程的状态
public class TestState
{
   public static void main(String[] args) throws InterruptedException {
       Thread thread=new Thread(()->{
           for (int i = 0; i < 5; i++)
          {
               try {
                   Thread.sleep(500);//因为睡眠500毫秒,所以在等待等待 TIMED_WAITING
              } catch (InterruptedException e) {
                   throw new RuntimeException(e);
              }
          }
           System.out.println("///////");
      });
       //观察状态
       Thread.State state = thread.getState();
       System.out.println(state);//NEW 从这开始打印了NEW

       //观察启动后
       thread.start();//启动线程
       state= thread.getState();
       System.out.println(state);//Run 打印RUNNABLE

       while (state!= Thread.State.TERMINATED)//只要线程不终止,就一直输出状态
      {
           Thread.sleep(100);
           state=thread.getState();//更新线程状态
           System.out.println(state);//输出状态
      }
/*
 NEW
RUNNABLE
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
TIMED_WAITING
///////
TERMINATED
*/
  }
}

1

posted @ 2022-07-27 21:51  zjw_rp  阅读(125)  评论(0)    收藏  举报