zoukankan      html  css  js  c++  java
  • 线程状态

    线程对象在不同时期有不同的状态,该状态信息存在于Thread.State这个枚举类中

     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 }

    截图自JDK1.8的API

    截自《Java多线程编程核心技术》

  • 相关阅读:
    第一讲 jQuery入门
    Log4j日志记录
    第四讲 Hibernate 缓存管理
    第一讲 Hibernate 简介
    第三讲 Spring 持久层封装、事务控制
    对 PInvoke 函数的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标
    善用 C# 3.0 Extensions 方法
    .net 下如何将文档文件(Word, Pdf等) 中的文本提取出来(转)
    vs2010常用快捷键 (转)
    Silverlight 视频学习札记(一)
  • 原文地址:https://www.cnblogs.com/qf123/p/9770981.html
Copyright © 2011-2022 走看看