JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

Java 线程状态

wys521 2024-11-18 18:00:00 精选教程 17 ℃ 0 评论

一个线程可以处于以下四种状态之一

  1. 新建(new):当线程被创建时,只会短暂地处于这种状态。此时已经分配了必需的系统资源,并执行了初始化。此刻线程已经有资格获得CPU时间,之后调度器将把这个线程转变为可运行状态或阻塞状态。
  2. 就绪(runnable):这种状态下,只要调度器把时间片分配给线程,线程就可以运行。
  3. 阻塞(blocked):线程能够运行,但有某个条件阻止它的运行。当线程处于阻塞状态时,调度器将忽略线程,不会分配给线程任何CPU时间。直到线程进入就绪状态,它才有可能执行操作。
  4. 死亡(dead):处于死亡或终止状态的线程将不再是可调度的,并且再也不会得到CPU时间。它的任务已结束,或不再是可运行的。

一个任务进入阻塞状态,可能有如下原因

  • 通过调用 sleep 使任务进入休眠状态,在这种情况下,任务在指定的时间内不会运行。
  • 通过调用 wait() 使线程挂起。直到线程得到了 notify() 或 notifyAll() 的消息,线程才会进入就绪状态。
  • 任务在等待某个输入/输出完成。
  • 任务试图在某个对象上调用其同步控制方法,但对象锁不可用,因为另一个任务已经获取了这个锁。

《Java 编程思想》

原文: https://www.io-notes.com/article.html?id=QXJ0aWNsZU5vZGU6MzU=

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表