网站首页 > 精选教程 正文
引子
最近也在看面试题,看到线程这一块然后问线程有多少种状态,然后查了一些博客发现居然各种说法的都有。如果你对此不是很确定的话甚至是模棱两可,这时面试官可能问一句:你确定 ?接着你就慌了,然后支支吾吾不敢确定,也许因为这个你就跟Offer无缘了。没办法只能去源码中看一看,就是java.lang.Thread.State这个枚举类。
未阅读本文时,你认为有多少种状态呢?
代码
先看代码,然后再看java doc文档关于状态的介绍吧,相信这些是最权威的了
线程状态。线程可以处于以下状态之一,一个线程在给定时间点只能处于一种状态。这些状态是不反映任何操作系统线程状态的虚拟机状态。
- NEW :尚未启动的线程处于此状态
- RUNNABLE :在Java虚拟机中执行的线程处于这种状态
- BLOCKED:等待监视器锁定被阻止的线程处于此状态。
- WAITING :无限期等待另一线程执行特定操作的线程处于此状态。
- TIMED_WAITING: 在指定等待时间内等待另一线程执行操作的线程处于此状态。
- TERMINATED :已退出的线程处于此状态
哪些方法使线程处于WAITING,等待线程的线程状态。由于调用以下方法之一,线程处于等待状态,处于等待状态的线程正在等待另一个线程执行特定操作。例如,在对象上调用Object.wait()的线程正在等待另一个线程在该对象上调用Object.notify()或Object.notifyAll()。调用thread.join()的线程正在等待指定线程终止。
- Object.wait with no timeout
- Thread.join with no timeout
- LockSupport.park
哪些方法使线程处于TIMED_WAITING,具有指定等待时间的等待线程的线程状态。由于使用指定的正等待时间调用以下方法之一,线程处于定时等待状态:
- Thread.sleep
- Object.wait with timeout
- Thread.join with timeout
- LockSupport.parkNanos
- LockSupport.parkUntil
总结
现在我们可以确定的是线程的状态有6种,下次如果面试官在问你的话,你就可以有底气的说线程状态有6种,然后是哪6种以及何时处于何种状态,也许因此你就拿到了心仪的Offer呢。
关注我吧!
- 上一篇: 线程状态
- 下一篇: 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?
你 发表评论:
欢迎- 04-11Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- 04-11Java中你知道几种从字符串中找指定的字符的数量
- 04-11探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- 04-11Python字符串详解与示例(python字符串的常见操作)
- 04-11java正则-取出指定字符串之间的内容
- 04-11String s1 = new String("abc");这句话创建了几个字符串对象?
- 04-11java判断字符串中是否包含某个字符
- 04-11关于java开发中正确的发牌逻辑编写规范
- 最近发表
-
- Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- Java中你知道几种从字符串中找指定的字符的数量
- 探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- Python字符串详解与示例(python字符串的常见操作)
- java正则-取出指定字符串之间的内容
- String s1 = new String("abc");这句话创建了几个字符串对象?
- java判断字符串中是否包含某个字符
- 关于java开发中正确的发牌逻辑编写规范
- windows、linux如何后台运行jar(并且显示进程名)
- 腾讯大佬私人收藏,GitHub上最受欢迎的100个JAVA库,值得学习
- 标签列表
-
- 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)
本文暂时没有评论,来添加一个吧(●'◡'●)