21xrx.com
2025-03-15 12:14:35 Saturday
文章检索 我的文章 写文章
Java线程状态:了解线程状态变化和常用方法
2023-06-19 10:08:10 深夜i     11     0
Java 线程

Java线程状态是多线程编程中非常重要的概念。Java 线程可以有六种不同的状态:新建、就绪、运行、阻塞、等待、终止。此外,Java 线程状态还可以转换,例如,当新建线程开始执行后,状态从新建线程就会转换为运行中。

Java 线程状态和线程转换演示代码:


public class ThreadDemo {

  public static void main(String[] args) throws Exception {

    Thread thread = new Thread(new MyRunnable());

    System.out.println("线程创建完毕!当前线程状态为:" + thread.getState());

    thread.start();

    System.out.println("线程开始执行!当前线程状态为:" + thread.getState());

    Thread.sleep(1000);

    System.out.println("当前线程状态为:" + thread.getState());

  }

  private static class MyRunnable implements Runnable {

    @Override

    public void run() {

      System.out.println("线程正在执行!");

    }

  }

}

在上面的例子中,我们创建了一个 MyRunnable 类,它实现了 Runnable 接口。然后我们创建了一个线程,并将 MyRunnable 对象传递给它。在 main 函数中,我们使用 getState() 方法显示了线程的状态,并在不同时间点调用了 Thread.sleep() 方法查看不同状态下的线程状态。

Java 线程状态共有六种,分别是:新建(NEW)、就绪(RUNNABLE)、运行(RUNNING)、阻塞(BLOCKED)、等待(WAITING)和终止(TERMINATED)。这六种状态的含义如下:

(1)新建(NEW):线程对象刚刚创建,但是还没有调用 start() 方法。

(2)就绪(RUNNABLE):线程对象创建完毕,并且 start() 方法被调用,正在等待 CPU 的资源。它是运行和阻塞的前置状态。

(3)运行(RUNNING):线程获得了 CPU 资源,正在执行 run() 方法。

(4)阻塞(BLOCKED):线程对象等待锁对象锁,因为其他线程正在使用这个锁对象。例如,当一个线程进入 synchronized 方法或 synchronized 代码块时,它会被阻塞。

(5)等待(WAITING):线程处于等待状态,等待另一个线程调用 notify() 或 notifyAll() 方法唤醒它。

(6)终止(TERMINATED):线程执行完毕,结束了它的生命周期。

、线程状态、多线程编程

  
  

评论区