Java中Thread状态学习记录

一个线程创建之后,总是处于其生命周期的4个状态之一中。线程的状态表明此线 程当前正在进行的活动,而线程的状态是可以通过程序来进行控制的,就是说,可以对线程进行操作来改变状态。这些操作包括启动(start)、终止(stop)、睡眠(sleep)、挂起 (suspend)、恢复(resume)、等待(wait)和通知(notify)。每一个操作都对应了一个方法,这些方法是由java.lang提供的。

线程状态在Java中是通过一个Thread的内部枚举State标识的。

创建状态(Thread.State.NEW
     如果创建了一个线程而没有启动它,那么,此线程就处于创建状态。比如,下述语句执行 以后,使系统有了一个处于创建状态的线程myThread:
         Thread t= new ThreadClass();
其中,ThreadClass()是Thread的子类,而Thread是由java.lang提供的。
     处于创建状态的线程还没有获得应有的资源,所以,这是一个空的线程。线程只有通过启动后,系统才会为它分配资源。对处于创建状态的线程可以进行两种操作:一是启动 (start)操作,使其进入可运行状态,二是终止(stop)操作,使其进入消亡状态。如果进入到消 亡状态,那么,此后这个线程就不能进入其他状态,也就是说,它不再存在了。
     start方法是对应启动操作的方法,其具体功能是为线程分配必要的系统资源;将线程设置为可运行状态,从而可以使系统调度这个线程。
    通过调用t.start()启动一个线程,使该线程进入可运行(Thread.State.RUNNABLE)的状态。
    由jvm的决定去调度(Scheduler) 在可运行状态(Runnable)下的线程,使该线程处于运行 (Running) 状态,由于JVM的调度会出现不可控性,即不是优先级高的先被调用,可能先调用,也可能后调用的的情况。运行状态(Running)下,调用礼让yield()方法,可以使线程回到可运行状态(Runnable)下,再次JVM的调度(并不依赖优先级)。
    线程执行完毕或异常退出会进入终止状态(Thread.State.TERMINATED)。
其余的还有几个状态:
Thread.State.BLOCKED
受阻塞并且正在等待监视器锁的某一线程的线程状态。处于受阻塞状态的某一线程正在等待监视器锁,以便进入一个同步的块/方法,或者在调用 Object.wait 之后再次进入同步的块/方法。
 Thread.State.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
注意:在给定时间点上,一个线程只能处于一种状态。这些状态是虚拟机状态,它们并没有反映所有操作系统线程状态。

©原创文章,转载请注明来源: 赵伊凡's Blog
©本文链接地址: Java中Thread状态学习记录

“Java中Thread状态学习记录”的40个回复

  1. Pingback: payday loans ontario
  2. Pingback: Blue Coaster33
  3. Pingback: tv packages
  4. Pingback: DIRECTV vs Dish
  5. Pingback: parking
  6. Pingback: penge lan nu
  7. Pingback: mobile porn movies
  8. Pingback: laan penge online
  9. Pingback: alkaline water
  10. Pingback: parking
  11. Pingback: alkaline water brands
  12. Pingback: visit this web-site
  13. Pingback: advice
  14. Pingback: house blue
  15. Pingback: check my blog
  16. Pingback: ionizer payment plan
  17. Pingback: ionizer payment plan
  18. Pingback: payment plan
  19. Pingback: adventure maps
  20. Pingback: water ionizer
  21. Pingback: visit site
  22. Pingback: alkaline water
  23. Pingback: shop car insurance
  24. Pingback: click this
  25. Pingback: link

发表评论

电子邮件地址不会被公开。 必填项已用*标注