线程的生命周期:
线程将处于下列4种状态之一。
newly created:
当我们new Thread()时,线程所处的状态就是新创建的状态(newly created),但是此时系统并不分配资源;给线程发送消息start()时,才分配资源。
runable:
给线程发送start()消失时,进入runable状态。此时抢到cpu的线程开始执行run()方法。其他调用start()的线程在queue里排队等待cpu调度。
blocked:
线程被挂起时,离开runable状态,知道结束回到runable状态。
a.线程内部调用sleep()时,休息,被挂起。时间到,则运作。
b.给线程发送消息wait()时,等待,被挂起。线程收到消息,notify();
c.某个线程调用join()时,其他线程会等到该线程结束后才会开始执行。会抛出InterruptedException异常,因此要写在try-catch块里。
dead:
线程的run()方法执行结束or线程调用了stop()函数时,线程进入销毁状态。