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
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,并且它被认为是不活着的。相关文章推荐
- Java 6 Thread States and Life Cycle.
- Core Java Tutorial -- Thread Join
- Core Java Tutorial -- Thread.sleep()
- Core Java Tutorial -- Thread Safety in Singleton Class
- Core Java Tutorial -- Daemon Thread
- Core Java Tutorial -- Thread Safety and Java Synchronization
- Core Java Tutorial -- Thread wait, notify and notifyAll
- 【Java多线程】之四:Life Cycle of Thread
- Java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start com
- 配置Struts2 遇到的两个异常 java.lang.ClassNotFoundException / org.apache.catalina.LifecycleException
- ThreadLocal in Java - Example Program and Tutorial
- Core Java Tutorial -- Queue
- A journey on the Android Main Thread - Lifecycle b
- java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start com
- java.lang.IllegalArgumentException和org.apache.catalina.LifecycleException
- (Core-JAVA) Deamon Thread 讲解
- java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException
- tomcat启动时报错:org.apache.catalina.core.AprLifecycleListener init
- Thread LifeCycle in .net
- java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException