1 New - 线程刚创建的状态 只可以变化为‘可运行状态’ start()
2. Runnable - 只可以进入running 状态, new/block/等锁 的线程都可以转变为到runnable
3. Running - 只有Runnable状态的线程才可以进入到runnning (有OS决定),在CPU时间片用完后或者执行yield()自动进入Runnable,
调用sleep或者join进入阻塞状态,执行Synchronize的方法进入等锁状态,跑完则进入Terminated状态,使用wait/park
则进入等待
4 Block - 在调用了sleep或者join后进入到Runnable,或者被join的线程唤醒
5 等锁 - 程序执行到synchronize,就会等锁,或者wait是时间到,或者unpark。 等锁
6 等待 - running的线程调用了wait,当前/其他线程执行了park,,unpark之后就进入到等锁或者runnable.
7 终止 - 线程执行结束