一个线程首先进行初始化 也就是执行stat()方法--->ready-to-run() 准备运行(就绪状态)一旦抢占到了cpu资源就变成运行中状态--->running() 正常运行结束后---->Dead()终止状态
在ready-to-run()状态时 调用了stop()方法也是就直接进入了Dead()终止状态
在running() 正常运行时调用sleep()或者wait()回到等待状态,另一种是IO调用,以及同步代码块 进入阻塞状态
sleep()方法是超时等待的意思,会进入ready-to-run()进行准备就绪状态,竞争cpu资源
wait()方法和sleep()方法一样是线程的等待,不同的是wait()需要唤醒否则一直等待着 ,sleep()是指定时间后,在时间内唤醒,或者过时后进入ready-to-run()
wait()需要notify()或者notifyAll()方法唤醒
sleep()或者wait()是不会进入了Dead()终止状态
IO调用, 进入阻塞状态 对应的为Data received 拿到数据 以及同步代码块 对应llock obtained 获取到锁 进入到running() 正常运行
在阻塞状态也会进入了Dead()终止状态