Home Article Practice 线程状态与生命周期

线程状态与生命周期

2024-06-09 12:21  views:294  source:许某    

线程从创建到最终消亡的过程被称为线程的生命周期。线程在整个生命周期中的状态包括新建、就绪、运行、阻塞和死亡。它
们之间的转化关系。新建状态使用new关键字和Thread类或其子类建立一个线
程对象后,该线程对象就处于新建状态。它将保持这个状态直到程序start()这个线程。就绪状态当线程对象调用了s
tart()方法之后,该线程就进入就绪状态。就绪状态的线程处于就绪队列中,要等待JVM线程调度器的调度。运行状
态如果就绪状态的线程获取了CPU资源,就可以执行run(),此时线程便处于运行状态。处于运行状态的线程最为复杂
,它可以变为阻塞状态、就绪状态和死亡状态。阻塞状态如果一个线程执行了sleep(睡眠)、suspend(挂起)
等方法,就会暂时释放占用的CPU资源,该线程就从运行状态进入阻塞状态。在睡眠时间已到或获得CPU资源后,其可以
重新进入就绪状态。阻塞状态又可以分为以下3种:(1)等待阻塞。运行状态中的线程执行wait()方法,使线程进入
等待阻塞状态。(2)同步阻塞。程序获取synchronized同步锁失败(因为同步锁被其他线程占用)。(3)其
他阻塞。当通过调用线程的sleep()或join()发出I/O请求时,线程就会进入阻塞状态。当sleep()状
态超时、join()等待线程终止或超时或者I/O处理完毕,线程重新转入就绪状态。死亡状态当一个处于运行状态的线
程完成任务或者其他终止条件发生时,该线程就切换到终止状态。一个线程从创建开始,通过调用不同的方法实现线程状态之
间的转化,实现了对进程的控制和调度,从而完成在线程run()方法中定义实现的业务逻辑操作。



Disclaimer: The above articles are added by users themselves and are only for typing and communication purposes. They do not represent the views of this website, and this website does not assume any legal responsibility. This statement is hereby made! If there is any infringement of your rights, please contact us promptly to delete it.

字符:    改为:
去打字就可以设置个性皮肤啦!(O ^ ~ ^ O)