大家好,今天来介绍线程的生命周期包括哪几种状态(关于线程的生命周期以下状态正确的是)的问题,以下是渲大师小编对此问题的归纳和整理,感兴趣的来一起看看吧!
线程的六种状态
线程整个生命周期分为六种状态:NEW状态、RUNNABLE状态、BLOCKED状态、WAITING状态、TIMED_WAITING状态、TERMINATED状态。其中NEW状态、RUNNABLE状态与TERMINATED状态是每个线程必定经历的状激迅态。下面我大致讲解一下每个状态的具体效果。
NEW状态:尚未启动的线程处于此状态。
散带RUNNABLE状态:在Java虚拟机中执行的线程处于此状态。
BLOCKED状态:被阻塞等待监视器锁定的线程处于此状态。
WAITING状态:无限期等待另一个线程执行特定操作的线程处于此状态。
TIMED_WAITING状态:正在等待另一个线程执行最多指定等待时间的操作的线程处于此状态。
TERMINATED状态:已退出的线程处于此状态。
流程创建后未启动会进入NEW状态,启动后进入RUNNABLE状态,执行线程任务,结束线程释放,进入TERMIBATED状态冲铅芦。而在RUNNABLE状态时可能会出现由于时间片到期,程序从内部暂停等情况进入阻塞(BLOCKED状态、WAITING状态和TIME_WAITING状态大都可以理解为阻塞),而当达到一定的条件,如程序对线程的唤醒,或争抢到时间片时,线程从阻塞进入RUNNABLE状态。
关于线程的生命周期以下状态正确的是( )。
【答案】:C
C。【胡嫌解析】启做敏线程生命周期中出现的状态包括:新建状态、可运行状态、运行悄枝状态、阻塞状态和终止状态。
线程有几种状态
Java中的线程的生命周期大体可分为5种状态。
1、新建(NEW):新创建了一个线程对象。
2、可运行(RUNNABLE):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu的使用权。
3、运行(RUNNING):可运行状态(runnable)的线程获得了cpu时间片(timeslice),执行程序代码。
4、阻塞(BLOCKED):阻塞状态是指线程因为某种原因放弃了cpu使用权,也即让出了cpu timeslice,暂时停止运行。直到线程进入可运行(runnable)状态,才有机会再次获得cpu timeslice转到运行(running)状态。
阻塞的情况分三种:
(一).等待阻塞:运行(running)的线程执行o.wait()方法,JVM会把该线程放入等待队列(waitting queue)中。
(二).同步阻塞:运行(running)的线程在获取对象的同步锁时,若该同步锁被别的线程占用,则JVM会把该线程放入锁池(lock pool)中。
(三).其他阻塞:运行(running)的线程执行Thread.sleep(long ms)或t.join()方盯清法,或者发出了I/O请求时,JVM会把该线程置为罩歼阻塞状态。当sleep()状态超时、join()等待线凯闷前程终止或者超时、或者I/O处理完毕时,线程重新转入可运行(runnable)状态。
5、死亡(DEAD):线程run()、main()方法执行结束,或者因异常退出了run()方法,则该线程结束生命周期。死亡的线程不可再次复生。
JAVA中线程有哪五个基本状态他们之间如何让转化并简述线程周期。
java中,每个线程都需经历新生、就绪、运行、阻塞和死亡五种状态,线程从新生到死亡的状态变化称为生命周期。
用new运算符和Thread类或其子类建立一个线程对象后,该线程就处于新生状态。
线程对象的生命周期中通常经历下面哪些状态( )。A)新建 B)运行 C)就绪 D)死亡
1、新建袜橡状态(New)
2、就绪状态(Runnable)
3、运行搜纳状态(Running)世好没
4、阻塞状态(Blocked)
5、死亡状态(Dead)
故答案:A B C D