文章目录
一、线程的生命周期
线程的生命周期分为新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead)这5种状态。在系统运行过程中不断有新的线程被创建,旧的线程在执行完毕后被清理,线程在排队获取共享资源或者锁时将被阻塞,因此运行中的线程会在就绪、阻塞、运行状态之间来回切换。线程的具体状态转化流程如图3-4所示。
其流程如下:
(1)调用new方法新建一个线程,这时线程处于新建状态。
(2)调用start方法启动一个线程,这时线程处于就绪状态。
(3)处于就绪状态的线程等待线程获取CPU资源,在等待其获取CPU资源后线程会执行run方法进入运行状态。
(4)正在运行的线程在调用了yield方法或失去处理器资源时,会再次进入就绪状态。
(5)正在执行的线程在执行了sleep方法、I/O阻塞、等待同步锁、等待通知、调用suspend方法等操作后,会挂起