java中多线程七种状态 如何理解 以及状态之间的转换条件

解决方案 »

  1.   


    NEW至今尚未启动的线程处于这种状态。 
    RUNNABLE正在 Java 虚拟机中执行的线程处于这种状态。 
    BLOCKED受阻塞并等待某个监视器锁的线程处于这种状态。 
    WAITING无限期地等待另一个线程来执行某一特定操作的线程处于这种状态。 
    某一等待线程的线程状态。某一线程因为调用下列方法之一而处于等待状态: 
    不带超时值的 Object.wait 
    不带超时值的 Thread.join 
    LockSupport.park 
    处于等待状态的线程正等待另一个线程,以执行特定操作。 例如,已经在某一对象上调用了 Object.wait() 的线程正等待另一个线程,以便在该对象上调用 Object.notify() 或 Object.notifyAll()。已经调用了 Thread.join() 的线程正在等待指定线程终止。TIMED_WAITING等待另一个线程来执行取决于指定等待时间的操作的线程处于这种状态。 具有指定等待时间的某一等待线程的线程状态。某一线程因为调用以下带有指定正等待时间的方法之一而处于定时等待状态: 
    Thread.sleep 
    带有超时值的 Object.wait 
    带有超时值的 Thread.join 
    LockSupport.parkNanos 
    LockSupport.parkUntil TERMINATED已退出的线程处于这种状态
      

  2.   

    修改下:NEW至今尚未启动的线程处于这种状态。  
    RUNNABLE正在 Java 虚拟机中执行的线程处于这种状态。  
    BLOCKED受阻塞并等待某个监视器锁的线程处于这种状态。  
    WAITING无限期地等待另一个线程来执行某一特定操作的线程处于这种状态。  
    某一等待线程的线程状态。某一线程因为调用下列方法之一而处于等待状态:  
    不带超时值的 Object.wait  
    不带超时值的 Thread.join  
    LockSupport.park  
    处于等待状态的线程正等待另一个线程,以执行特定操作。 例如,已经在某一对象上调用了 Object.wait() 的线程正等待另一个线程,以便在该对象上调用 Object.notify() 或 Object.notifyAll()。已经调用了 Thread.join() 的线程正在等待指定线程终止。TIMED_WAITING等待另一个线程来执行取决于指定等待时间的操作的线程处于这种状态。  具有指定等待时间的某一等待线程的线程状态。某一线程因为调用以下带有指定正等待时间的方法之一而处于定时等待状态:  
    Thread.sleep  
    带有超时值的 Object.wait  
    带有超时值的 Thread.join  
    LockSupport.parkNanos  
    LockSupport.parkUntil  TERMINATED已退出的线程处于这种状态
      

  3.   

    http://wenku.baidu.com/view/ea967a09581b6bd97f19ea78.html图文教程,看图很清楚