线程生命周期及状态简介说明
下文笔者讲述线程的生命周期及状态简介说明,如下所示

线程状态
新建(new): 新创建一个线程对象 可运行(runnable): 线程对象创建后 当调用线程对象start()方法 该线程处于就绪状态 等待被线程调度选中 获取cpu的使用权 运行(running): 可运行状态(runnable)的线程获得cpu时间片(timeslice) 执行程序代码 注 就绪状态是进入到运行状态的唯一入口 线程要想进入运行状态执行 首先必须处于就绪状态中 阻塞(block): 处于运行状态中的线程由于某种原因 暂时放弃对CPU的使用权 停止执行 此时进入阻塞状态 直到其再次进入到就绪状态 才有机会再次被CPU调用以进入到运行状态
阻塞分类
1.等待阻塞: 运行状态中的线程执行wait()方法 JVM会把该线程放入等待队列(waitting queue)中 使本线程进入到等待阻塞状态 2. 同步阻塞: 线程在获取 synchronized 同步锁失败(因为锁被其它线程所占用) 则JVM会把该线程放入锁池(lock pool)中 线程会进入同步阻塞状态 3. 其他阻塞: 调用线程sleep()或join()或发出I/O请求时 线程会进入到阻塞状态 当sleep()状态超时、join()等待线程终止或者超时 或I/O处理完毕时,线程重新转入就绪状态
线程生命周期结束的简介说明: 死亡(dead) 线程run()、main()方法执行结束 因异常退出了run()方法 则该线程结束生命周期
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。