您的位置:首页 > Web前端

Core Java Tutorial -- Thread Life Cycle

2018-03-29 18:03 239 查看
在使用线程和多线程环境编程时,了解线程生命周期和线程状态非常重要。

Thread Life Cycle in Java

New

Runnable

Running

Blocked/Waiting

Dead

Thread Life Cycle in Java

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



New

当我们使用 new 操作符创建一个新的线程对象,线程状态是 New Thread。此时,线程不是活的,这是 Java 编程的内部状态。

Runnable

当我们调用 Thread 对象的 start() 函数,它的状态就改成成了 Runnable。控制权被给与线程调度程序来完成它的执行。是否立即运行此线程或在运行之前将其保持在可运行线程池中,取决于操作系统线程调度程序的实现。

Running

当线程被执行,它的状态变为 Running。线程调度程序可从运行线程池中选择一个线程并将其状态更改为正在运行。然后 CPU 开始执行这个线程。一个线程可以将状态更改为 Runnable、Dead 或 Blocked 取决于时间分片。run() 方法的线程完成或等待某些资源。

Blocked/Waiting

使用 Thread join,一个线程可以等待其他线程完成,或者它可以等待一些资源。栗如生产者消费者问题或服务器实现或 IO 资源,则状态变为等待。一旦线程等待状态结束,状态就会变为 Runnable,并将它一会到可运行的线程池。

Dead

一旦线程完成了执行,它的状态就变为 Dead,并且它被认为是不活着的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: