线程的生命周期
- 创建 -> 就绪 -> 运行 -> (阻塞->解除阻塞->就绪->运行) ->消亡
- 创建状态:新建了一个线程对象,如Thread t = new Thread();
- 就绪状态:调用线程的start()方法启动线程后,线程就进入了就绪状态,此时线程只是进入了线程队列,等待获取cpu资源,具备了运行的条件,但并不一定已经开始运行了,因为当前cpu可能在执行别的线程.
- 运行状态:当线程获取了cpu资源时就进入了运行状态,执行线程的run方法.
- 消亡:一旦线程的run方法执行完毕后线程将会消亡.
- 阻塞状态:当线程在运行状态时,可能会遇到一些阻塞事件,此时当前线程会让出cpu资源,暂停了自己的执行,并且进入阻塞状态.
- 当阻塞解除时便会重新进入就绪状态,继续进入线程队列等待获取cpu资源.当重新获取了cpu资源后,会从上次已执行的run方法代码后继续执行.
- 阻塞事件:线程的sleep()方法、线程的join()方法等.
- 大多数情况下,线程是因为执行完run方法就会进入终止状态,除非人为调用了stop方法.
网友评论