java和操作系统的线程状态

操作系统线程的5种状态

新建 就绪 执行 阻塞 死亡
java和操作系统的线程状态

java中的6种状态

1.创建 2. 执行 3.销毁 4.时间限制的等待 5.无线等待 6.阻塞
java和操作系统的线程状态
java和操作系统的线程状态

常见线程方法使用 的状态切换

  1. 当前线程sleep()方法结束,其他线程join()结束,等待用户输入完毕,某个线程拿到对象锁,这些线程也将进入可运行状态。

  2. 当前线程时间片用完了,调用当前线程的yield()方法,当前线程进入可运行状态。

  3. 锁池里的线程拿到对象锁后,进入可运行状态。

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线程的状态及切换