线程的生命周期
线程生命周期主要分为下面五个状态:
- 新建
- 就绪
- 运行
- 阻塞
- 死亡
阻塞:可理解开车时遇到红灯要停车,这就是阻塞状态,当红灯变成路灯时再重新行驶。
大致执行流程(如图):
新建线程对象,调用start方法之后,进入到就绪状态(此时并没有获得CPU的执行权,而是在等待CPU的执行权),当获得CPU执行权后,可能运行到某一段代码有失去了执行权,失去执行权又回到就绪状态,又继续等待CPU执行权。
如果程序运行之后遇到sleep之后,就会进入一个阻塞状态(sleep可以指定睡眠多少毫秒),睡眠时间过了会自动醒来,而wait等待外部别的线程把它唤醒,在sleep醒来或wait被唤醒就会进入就绪状态,一个线程里面run方法执行完成之后,线程就变成死亡状态,线程对象变成垃圾,等待垃圾回收器进行回收。