网站首页 > 精选教程 正文
一个线程可以处于以下四种状态之一
- 新建(new):当线程被创建时,只会短暂地处于这种状态。此时已经分配了必需的系统资源,并执行了初始化。此刻线程已经有资格获得CPU时间,之后调度器将把这个线程转变为可运行状态或阻塞状态。
- 就绪(runnable):这种状态下,只要调度器把时间片分配给线程,线程就可以运行。
- 阻塞(blocked):线程能够运行,但有某个条件阻止它的运行。当线程处于阻塞状态时,调度器将忽略线程,不会分配给线程任何CPU时间。直到线程进入就绪状态,它才有可能执行操作。
- 死亡(dead):处于死亡或终止状态的线程将不再是可调度的,并且再也不会得到CPU时间。它的任务已结束,或不再是可运行的。
一个任务进入阻塞状态,可能有如下原因
- 通过调用 sleep 使任务进入休眠状态,在这种情况下,任务在指定的时间内不会运行。
- 通过调用 wait() 使线程挂起。直到线程得到了 notify() 或 notifyAll() 的消息,线程才会进入就绪状态。
- 任务在等待某个输入/输出完成。
- 任务试图在某个对象上调用其同步控制方法,但对象锁不可用,因为另一个任务已经获取了这个锁。
《Java 编程思想》
原文: https://www.io-notes.com/article.html?id=QXJ0aWNsZU5vZGU6MzU=
- 上一篇: Java 线程的状态
- 下一篇: 线程状态
猜你喜欢
- 2024-11-18 Java并发编程线程状态转换
- 2024-11-18 Java面试必考问题:线程的生命周期
- 2024-11-18 Java 19 虚拟线程的状态变化,停驻与锁定
- 2024-11-18 Java线程生命周期详解?
- 2024-11-18 线程从创建最终消亡,要经历的若干状态,你了解其中的多少?
- 2024-11-18 java线程状态之WAITING(等待)
- 2024-11-18 浅谈Java线程:线程基础知识扫盲
- 2024-11-18 Java线程在各个状态下调用start方法会发生什么事情?
- 2024-11-18 为什么Java中线程没有Running状态
- 2024-11-18 阻塞模型将会使线程休眠,为什么 Java 线程状态却是 RUNNABLE?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)