黑马程序员技术交流社区

标题: 用Thread.State描述线程的五种状态 [打印本页]

作者: li3N    时间: 2015-11-12 10:51
标题: 用Thread.State描述线程的五种状态
  1. package exer.psr.thread;

  2. /**
  3. * 线程的生命周期和五种状态(虚拟机状态)。虚拟机状态和实际操作系统中的线程状态会有所不同。
  4. * 创建(NEW):用new创建线程对象,但至今尚未启动的线程状态。
  5. *
  6. * 运行(RUNNABLE):可运行线程的线程状态。使用start方法赋予线程执行资格。
  7. * 处于可运行状态的某一线程正在 Java 虚拟机中运行,但它可能正在等待操作系统中的其他资源,比如处理器。
  8. *
  9. * 阻塞(BLOCKED):受阻塞并且正在等待监视器锁的某一线程的线程状态。
  10. *
  11. * 冻结(WAITING或者TIMED_WAITING):线程执行过程中碰到sleep(long time)和wait()方法时,放弃执行资格。
  12. * 进入冻结状态的sleep方法和wait方法都会抛出中断异常。
  13. * 冻结状态会通过sleep时间到或者收到由同步锁发来的notify()和notifyAll()方法来正常结束并回到运行状态。
  14. * 也可以通过interrupt()方法强制结束线程冻结,回到运行状态,但会发生中断异常InterruptException。
  15. *
  16. * 消亡(TERMINATED):线程run()方法执行结束,线程对象变为垃圾。或者通过已过时的stop()方法强行结束线程。
  17. *
  18. * 这五种状态在Thread类中用一个内部枚举类State描述:Thread.State。
  19. * @author Administrator
  20. *
  21. */
  22. public class ThreadLife {

  23.         public static void main(String[] args) throws InterruptedException {
  24.                 Thread t = new Thread() {
  25.                         public void run() {
  26.                                 System.out.println("thread run 1");
  27.                                 try {
  28.                                         Thread.sleep(2000);
  29.                                 } catch (InterruptedException e) {
  30.                                         e.printStackTrace();
  31.                                 }
  32.                                 System.out.println("thread run 2");
  33.                         }
  34.                 };
  35.                 System.out.println(t.getState()); //NEW状态
  36.                 t.start();
  37.                 System.out.println(t.getState()); //RUNNABLE状态
  38.                 Thread.sleep(1000);
  39.                 System.out.println(t.getState()); //TIMED_WAITING状态
  40.                 Thread.sleep(2000);
  41.                 System.out.println(t.getState()); //TERMINATED状态
  42.         }

  43. }
复制代码

作者: 许佳鑫    时间: 2015-11-12 12:12
已阅,学习
作者: z13561291    时间: 2015-11-12 12:18
还没学到这,先了解下了
作者: 邸永明    时间: 2015-11-12 14:09
很实用 谢谢
作者: 2015竹林风    时间: 2015-11-12 15:55
学习了非常感谢
作者: ln0491    时间: 2015-11-12 18:02
学习了。。。。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2