全国服务热线:400-035-8011

位置:重庆中公优就业IT培训机构 > 学校动态 > 线性的生命周期有哪些方法

线性的生命周期有哪些方法

来源:重庆中公优就业IT培训机构时间:2020/7/9 11:11:42

  以下是小编为大家整理IT培训知识点线性的生命周期有哪些方法的内容。

      新建状态:用new语句创建的线程对象处于新建状态

       此时它和其它的java对象一样,仅仅在堆中被分配了内存

  就绪状态:当一个线程创建了以后,其他的线程调用了它的start()方法

     该线程就进入了就绪状态。处于这个状态的线程位于可运行池中,等待获得CPU的使用权

  运行状态:处于这个状态的线程占用CPU,执行程序的代码

线性的生命周期有哪些方法

  阻塞状态:当线程处于阻塞状态时,java虚拟机不会给线程分配CPU

     直到线程重新进入就绪状态,它才有机会转到运行状态。

  阻塞状态分为三种情况:

  1、 位于对象等待池中的阻塞状态:当线程运行时,如果执行了某个对象的wait()方法

      java虚拟机就回把线程放到这个对象的等待池中

  2、 位于对象锁中的阻塞状态,当线程处于运行状态时,试图获得某个对象的同步锁时

      如果该对象的同步锁已经被其他的线程占用,JVM就会把这个线程放到这个对象的琐池中。

  3、 其它的阻塞状态:当前线程执行了sleep()方法,或者调用了其它线程的join()方法

      或者发出了I/O请求时,就会进入这个状态中。

  一、创建并运行线程

  当调用start方法后,线程开始执行run方法中的代码。线程进入运行状态。

      可以通过Thread类的isAlive方法来判断线程是否处于运行状态。

      当线程处于运行状态时,isAlive返回true

      当isAlive返回false时,可能线程处于等待状态,也可能处于停止状态。

  二、挂起和唤醒线程

  一但线程开始执行run方法,就会一直到这个run方法执行完成这个线程才退出。

        但在线程执行的过程中,可以通过两个方法使线程暂时停止执行。

      这两个方法是suspend和sleep。在使用suspend挂起线程后,可以通过resume方法唤醒线程。

       而使用sleep使线程休眠后,只能在设定的时间后使线程处于就绪状态

      (在线程休眠结束后,线程不一定会马上执行,只是进入了就绪状态,等待着系统进行调度)。

  虽然suspend和resume可以很方便地使线程挂起和唤醒

        但由于使用这两个方法可能会造成一些不可预料的事情发生

       因此,这两个方法被标识为deprecated(抗议)标记

      这表明在以后的jdk版本中这两个方法可能被删除

      所以尽量不要使用这两个方法来操作线程。

     下面的代码演示了sleep、suspend和resume三个方法的使用。

  三、终止线程的三种方法

  有三种方法可以使终止线程。

  1.  使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。

  2.  使用stop方法强行终止线程(这个方法不推荐使用

      因为stop和suspend、resume一样,也可能发生不可预料的结果)。

  3.  使用interrupt方法中断线程。

领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/3179/news/214558/违者必究! 以上就是重庆中公优就业IT培训机构 小编为您整理 线性的生命周期有哪些方法的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-035-8011