线程有哪些常见的状态?

Java面试王 Java面经 发布时间:2021-03-31 09:58:12 阅读数:1527 1

 线程常见的状态如下所示:

       
状态名称 说明
NEW 初始状态,线程被构建,但是还没有调用start()方法
RUNNABLE 运行状态,Java线程将操作系统中的就绪和运行两种状态笼统地称作“运行中”
BLOCKED 阻塞状态,表示线程阻塞于锁
等待状态,表示线程进入等待状态,进入该状态表示当前线程需要等待其他线程
WAITING 做出一些特定动作(通知或中断)
TIME_WAITING 超时等待状态,该状态不同于WAITING,它是可以在指定的时间自行返回的
TERMINATED 终止状态,表示当前线程已经执行完毕
 


当线程执行 wait()方法之后,线程进入 WAITING(等待) 状态。
进入等待状态的线程需要依靠其他线程的通知才能够返回到运行状态,
而 TIME_WAITING(超时等待) 状态相当于在等待状态的基础上增加了超时限制,
比如通过 sleep(long millis)方法或 wait(long millis)方法可以将 Java 线程置于 TIMED WAITING 状态。
当超时时间到达后 Java 线程将会返回到 RUNNABLE 状态。当线程调用同步方法时,
在没有获取到锁的情况下,线程将会进入到 BLOCKED(阻塞) 状态。
线程在执行 Runnable 的run()方法之后将会进入到 TERMINATED(终止) 状态。










 
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaMianJing/20210331/161715651860.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者