java和操作系统的线程状态
操作系统线程的5种状态
新建 就绪 执行 阻塞 死亡
java中的6种状态
1.创建 2. 执行 3.销毁 4.时间限制的等待 5.无线等待 6.阻塞
常见线程方法使用 的状态切换
-
当前线程sleep()方法结束,其他线程join()结束,等待用户输入完毕,某个线程拿到对象锁,这些线程也将进入可运行状态。
-
当前线程时间片用完了,调用当前线程的yield()方法,当前线程进入可运行状态。
-
锁池里的线程拿到对象锁后,进入可运行状态。
start
start只能运行1次 就绪状态即可运行状态 未必立刻执行 run()才是运行状态
sleep
- 使用sleep从执行状态(running)进入阻塞状态(blocked)
- sleep结束从阻塞状态转回就绪状态
wait
- wait()阻塞状态 io操作也是阻塞状态
- yeild从执行状态(running)进入就绪状态(runnable)
join
join() B线程想等待A线程结束后再执行 那就再B线程中执行A.join()
join(时间) 只等待这么九 如果A线程没有执行完也不等待了
其他线程join()结束 进入就绪状态
yeild
当前线程时间片用完了,调用当前线程的yield()方法,当前线程进入可运行状态
参考文章 Java线程的状态及切换