[英]What is the LifeCycle of Thread in Java?
在Java中,当我们创建线程对象时
Thread t1 = new Thread(Runnable object);
t1.start();
什么是主题的生命周期的不同阶段t1
和执行后run()
将状态t1
?
线程在其生命周期中会经历各个阶段。 例如,线程是先生,启动,运行然后死亡的。 下图显示了线程的完整生命周期。
Java线程上面介绍了上述阶段:
New:
新线程以新状态开始其生命周期。 它将保持这种状态,直到程序启动线程为止。 它也称为出生线程。
Runnable
:一个刚出生的线程启动后,该线程进入可运行状态。 处于此状态的线程被视为正在执行其任务。
Waiting:
有时,当一个线程等待另一个线程执行任务时,一个线程会转换为等待状态。只有当另一个线程发出信号等待线程继续执行时,一个线程才会转换回可运行状态。
Timed waiting:
可运行线程可以在指定的时间间隔内进入定时等待状态。 当该时间间隔到期或发生等待事件时,处于此状态的线程将转换回可运行状态。
Terminated ( Dead )
:可运行线程在完成其任务或终止时进入终止状态。
来源: http : //www.tutorialspoint.com/java/java_multithreading.htm
线程可以处于以下状态之一 :
NEW :
尚未启动的线程处于此状态。
RUNNABLE :
在Java虚拟机中执行的线程处于此状态。
BLOCKED:
处于阻塞状态的线程正在等待监视器锁定,以在输入Object.wait
之后输入同步块/方法或重新输入synchronized
块/方法。
WAITING:
无限期等待另一个线程执行特定操作的线程处于此状态。
由于调用以下方法之一,线程处于等待状态:
Object.wait with no timeout
Thread.join with no timeout
LockSupport.park
TIMED_WAITING:
正在等待另一个线程执行操作的线程最多达到指定的等待时间,该线程处于此状态。
由于以指定的正等待时间调用以下方法之一,因此线程处于定时等待状态:
Thread.sleep
Object.wait with timeout
Thread.join with timeout
LockSupport.parkNanos
LockSupport.parkUntil
TERMINATED:
退出的线程处于此状态。
请参阅pramodbablad的本文以了解此图中的各种状态
在上图中,除了RUNNING
(已显示为圆圈)之外,所有其他矩形块均表示各种thread states
。
线程状态:
线程也可以具有等待,定时等待和阻塞状态
有关更多信息,请参见此处: https : //docs.oracle.com/javase/7/docs/api/java/lang/Thread.State.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.