码迷,mamicode.com
首页 > 编程语言 > 详细

Java线程的几种状态

时间:2019-09-11 09:57:34      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:监视器   col   time   com   进入   img   from   monitor   定义   

Java中线程的状态定义在java.lang.Thread类中的一个枚举中。

技术图片
 1 public enum State {
 2         /**
 3          * Thread state for a thread which has not yet started.
 4          */
 5         NEW,
 6 
 7         /**
 8          * Thread state for a runnable thread.  A thread in the runnable
 9          * state is executing in the Java virtual machine but it may
10          * be waiting for other resources from the operating system
11          * such as processor.
12          */
13         RUNNABLE,
14 
15         /**
16          * Thread state for a thread blocked waiting for a monitor lock.
17          * A thread in the blocked state is waiting for a monitor lock
18          * to enter a synchronized block/method or
19          * reenter a synchronized block/method after calling
20          * {@link Object#wait() Object.wait}.
21          */
22         BLOCKED,
23 
24         /**
25          * Thread state for a waiting thread.
26          * A thread is in the waiting state due to calling one of the
27          * following methods:
28          * <ul>
29          *   <li>{@link Object#wait() Object.wait} with no timeout</li>
30          *   <li>{@link #join() Thread.join} with no timeout</li>
31          *   <li>{@link LockSupport#park() LockSupport.park}</li>
32          * </ul>
33          *
34          * <p>A thread in the waiting state is waiting for another thread to
35          * perform a particular action.
36          *
37          * For example, a thread that has called <tt>Object.wait()</tt>
38          * on an object is waiting for another thread to call
39          * <tt>Object.notify()</tt> or <tt>Object.notifyAll()</tt> on
40          * that object. A thread that has called <tt>Thread.join()</tt>
41          * is waiting for a specified thread to terminate.
42          */
43         WAITING,
44 
45         /**
46          * Thread state for a waiting thread with a specified waiting time.
47          * A thread is in the timed waiting state due to calling one of
48          * the following methods with a specified positive waiting time:
49          * <ul>
50          *   <li>{@link #sleep Thread.sleep}</li>
51          *   <li>{@link Object#wait(long) Object.wait} with timeout</li>
52          *   <li>{@link #join(long) Thread.join} with timeout</li>
53          *   <li>{@link LockSupport#parkNanos LockSupport.parkNanos}</li>
54          *   <li>{@link LockSupport#parkUntil LockSupport.parkUntil}</li>
55          * </ul>
56          */
57         TIMED_WAITING,
58 
59         /**
60          * Thread state for a terminated thread.
61          * The thread has completed execution.
62          */
63         TERMINATED;
64     }
View Code

NEW : 该状态线程对象被创建,但还未调用start方法。
RUNNABLE : 线程运行在虚拟机上,但是可能正在等待操作系统的资源
BLOCKED:处于该状态的线程正在等待获取一个监视器锁进入同步代码或方法;也可能是在调用了Object.wait后等待一个监视器锁重新进入同步代码或方法。
WAITING:线程处于等待状态;处于该状态的线程可能是因为调用了Object#wait(),Thread#join,LockSupport#park()中的某一个方法;处于该状态的线程正在等待其他线程完成一些特定的操作。
TIMED_WAITING:线程处于`定时`等待状态,这个等待是有具有指定时间的;处于这个状态的线程可能是调用了具有指定时间的Thread.sleep/Object#wait(long)/#join(long)/LockSupport#parkNanos/LockSupport#parkUntil
TERMINATED:执行完毕

Java线程的几种状态

标签:监视器   col   time   com   进入   img   from   monitor   定义   

原文地址:https://www.cnblogs.com/fkqm/p/11504286.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!