java多线程的几种状态

来源:互联网 发布:软件开发人员资质证书 编辑:程序博客网 时间:2024/05/01 07:18
按照线程体在计算机系统内存中的状态不同,可以将线程分为创建就绪运行睡眠挂起死亡等类型。这些线程状态类型下线程的特征为:

  • 创建状态:当利用new关键字创建线程对象实例后,它仅仅作为一个对象实例存在,JVM没有为其分配CPU时间片等线程运行资源。

  • 就绪状态:在处于创建状态的线程中调用start方法将线程的状态转换为就绪状态。这时,线程已经得到除CPU时间之外的其它系统资源, 只等JVM的线程调度器按照线程的优先级对该线程进行调度,从而使该线程拥有能够获得CPU时间片的机会。

  • 睡眠状态:在线程运行过程中可以调用sleep方法并在方法参数中指定线程的睡眠时间将线程状态转换为睡眠状态。这时,该线程在不释放占用资源的情况下停止运行指定的睡眠时间。时间到达后,线程重新由JVM线程调度器进行调度和管理。

  • 挂起状态:可以通过调用suspend方法(已过时)将线程的状态转换 为挂起状态。这时,线程将释放占用的所有资源,由JVM调度转入临时存储空间,直至应用程序调用resume方法(已过时)恢复线程运行。

  • 死亡状态:当线程体运行结束或者调用线程对象的stop方法(已过时)后线程将终止运行,由JVM收回线程占用的资源。