对象的生命周期:从一个对象被实例化开始到这个对象在内存中被销毁的整个过程中,这个对象经历的种种状态
人的生命周期:出生-婴儿-儿童-少年-青少年-青年-壮年-中年-中老年-老年-死亡
对于线程,同样也有生命周期,当线程被创建之后,它既不是一启动就进入执行状态,也不是一直处于执行状态,在线程的生命周期中,也会经历不同的状态【对于线程而言,它的执行是争抢式的】
new:【新生】,线程被实例化,但是还没有开始执行
runnable:【就绪】,没有抢到时间片
running:【执行】,抢到了cpu时间片,cpu开始执行这个线程中的任务
blocked:【阻塞】,线程再执行的过程中可能会遇到特殊情况,使得其他的线程有了执行的机会,被阻塞的线程会等待合适的实际重新进入就绪状态
dead:【死亡】,线程终止
a.线程正常结束【线程中的任务被执行完了】
b.他杀【stop()可以强制结束线程,这种做法是比较危险的,会造成死锁】