想想看,为什么从来没有人真的关心过Java对象的生命周期呢?答案很简单,对象不是Java程序的主角,线程才是(请见简易Java进程模型和线程模型:动态的方法栈)。好了,请看下图:

一个(一次)线程的生命历程将可能会经过五个状态:

New态:

Runnable态:

Running态:

Blocked态:(单线程将不会经过这个状态)

Dead态:

Blocked事件有哪些呢?

(1)Thread.sleep(x);

(2)oneOtherThread.join();

(3)遇到方法上的同步锁synchronized[ˈsɪŋkrəˌnaɪzd],注意这屌丝的发音

(4)Thread.wait();