龙空技术网

Java 中的线程生命周期 - Java 中的线程状态

农非农 70

前言:

现在咱们对“java 线程启动”大约比较讲究,同学们都想要剖析一些“java 线程启动”的相关资讯。那么小编在网上搜集了一些对于“java 线程启动””的相关文章,希望你们能喜欢,咱们快快来了解一下吧!

了解 Java 中的线程生命周期和线程状态在处理线程和多线程环境编程时非常重要。从我们上一个教程中,我们可以通过实现 Runnable 接口或扩展 Thread 类来创建 java 线程类,但要启动 java 线程,我们首先必须创建 Thread 对象并调用它的 start()方法来执行 run()方法作为线程

Java 中的线程生命周期

下图显示了 java 中线程生命周期的不同状态。我们可以在 java 中创建一个线程并启动它,但线程状态如何从 Runnable 更改为 Run 再到 Blocked 取决于线程调度程序的操作系统实现,而 java 对此没有完全控制权。

New

当我们使用 new 运算符创建新的 Thread 对象时,线程状态为 New Thread。此时,线程不是活动的,它是 Java 编程的内部状态。

Runnable

当我们在 Thread 对象上调用 start() 函数时,它的状态更改为 Runnable。控制权被授予线程调度程序以完成其执行。是立即运行此线程,还是在运行前将其保留在可运行的线程池中,取决于线程调度程序的操作系统实现。

Running

当线程正在执行时,它的状态将更改为正在运行。线程调度程序从可运行的线程池中选取一个线程,并将其状态更改为“正在运行”。然后 CPU 开始执行此线程。线程可以将状态更改为可运行、死亡或阻止运行状态取决于时间切片、run() 方法的线程完成或等待某些资源。

Blocked/Waiting

线程可以等待其他线程完成线程join,也可以等待某些资源可用。例如,生产者使用者问题或服务员通知程序实现或 IO 资源,则其状态更改为等待。线程等待状态结束后,其状态将更改为 Runnable,并移回可运行的线程池。

Dead

线程完成执行后,其状态将更改为 Dead,并被视为不活动。以上是线程的不同状态。

标签: #java 线程启动