线程状态。线程可以处于以下状态之一:

    1. NEW

      尚未启动的线程处于此状态。

    2. RUNNABLE

      在Java虚拟机中执行的线程处于此状态。

    3. BLOCKED

      被阻塞等待监视器锁定的线程处于此状态。

    4. WAITING

      正在等待另一个线程执行特定动作的线程处于此状态。

    5. TIMED_WAITING

      正在等待另一个线程执行动作达到指定等待时间的线程处于此状态。

    6. TERMINATED

      已退出的线程处于此状态。

    1. package test;
    2. public class Main {
    3. public static void main(String[] args) throws InterruptedException {
    4. T t = new T();
    5. //获取线程状态
    6. System.out.println(t.getName() + " 状态 " + t.getState());
    7. t.start();
    8. while (Thread.State.TERMINATED != t.getState()) {//判断线程是否终止
    9. System.out.println(t.getName() + " 状态 " + t.getState());
    10. Thread.sleep(500);
    11. }
    12. System.out.println(t.getName() + " 状态 " + t.getState());
    13. }
    14. }
    15. class T extends Thread {
    16. @Override
    17. public void run() {
    18. while (true) {
    19. for (int i = 0; i < 5; i++) {
    20. System.out.println("hi " + i);
    21. try {
    22. Thread.sleep(1000);
    23. } catch (InterruptedException e) {
    24. e.printStackTrace();
    25. }
    26. }
    27. break;
    28. }
    29. }
    30. }

    image.png