本文共 633 字,大约阅读时间需要 2 分钟。
线程的生命周期可以简单看做是线程的生老病死,首先上图片:
New:新建状态
我们在类中新创建一个线程的时候,该线程就处于new状态,也就是调用start()方法之前线程所处的状态
Runnable:就绪状态
就绪状态包括:Ready状态和Running状态,Ready状态表示该线程可以被线程调度器调度执行,而Running状态表示该线程正在
被执行,使用Thread.yield()方法可以使线程状态由Running变成为Ready。
Blocked:阻塞状态
线程发起阻塞的I/O操作 ,或者申请有其他线程占用的独享资源,线程会转换为Blocked状态,处于阻塞状态的线程不会占用CPU资源,当阻塞I/O操作执行完成或者线程获得了其申请的资源,线程可以转换为Runnable状态。
Waiting:等待状态
线程执行了Object.wait()方法,thread.join()方法会把线程转换为Waiting等待状态,执行Object.notify()方法,或者加入的线程执行完毕,当前线程会转换为Runnable状态。
Time_Waiting:休眠状态
与Waiting状态类似,两者都是等待状态,区别在于处于该线程的状态不会无限制的等待下去,如果线程没有在指定的时间范围内执行完期望的操作,该线程会自动转换为Runnable状态。
Terminated:终止状态
该状态表示线程执行结束,处于终止状态。
另一篇关于线程的文章:学习多线程——必会的的9个方法
转载地址:http://fjhwi.baihongyu.com/