Java线程状态

Java线程状态

Java线程有六个状态,可以在Thread类中的枚举类型State中查看。

1. NEW

当Thread刚创建,并且还未调用start()方法,此时的状态就是NEW。

2. RUNNABLE

一个RUNNABLE状态的线程已经运行在JVM中,但是它可能需要等待某些操作系统的资源,例如CPU。

3. BLOCKED

一个BLOCKED状态的线程正在等待获取一个锁,例如线程A进入了synchronized方法,若线程B也希望进入synchronized方法,此时线程B等待获取锁,进入BLOCKED状态。

4. WAITING

由于调用了下列没有timeout参数的方法,线程将会进入WAITING状态。也就是说,WAITING状态的线程等待另一个线程完成一个特殊的行为。
- Object.wait
- Thread.join
- LockSupport.park

5. TIME_WAITING

TIME_WAITING状态的线程会等待一段特定的时间。当调用下列带timeout参数的方法时会进入TIME_WAITING状态。
- Thread.sleep
- Object.wait
- Thread.join
- LockSupport.parkNanos
- LockSupport.parkUntil

6. TERMINATED

当线程完成任务后进入TERMINATED状态。

详细分析可以看这篇博客Java线程状态分析

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 更多 Java 并发编程方面的文章,请参见文集《Java 并发编程》 关于 Monitor Monitor 是 J...
    专职跑龙套阅读 5,893评论 0 5
  • 很多人对于线程的状态不是太了解,本次我想把我理解的有关线程的相关知识和大家分享一下,上面的图片是我从网上找到的,这...
    indexImprov阅读 12,488评论 0 11
  • 一、进程和线程 进程 进程就是一个执行中的程序实例,每个进程都有自己独立的一块内存空间,一个进程中可以有多个线程。...
    阿敏其人阅读 7,432评论 0 13
  • 时针转了两圈 苦等的故事也剩不了几天 继续的 是流浪还是平淡 是琴箫还是油烟 写在我已定的因果里 如果,唤醒是另一...
    t小希阅读 1,715评论 0 1
  • 眼皮在跳。感觉整个人都是在发抖,不知道眼皮怎么会跳,但这样的感觉真的很不好。那跳动的频率,就像是心脏在跳动...
    鹿鹿无畏阅读 4,371评论 0 50

友情链接更多精彩内容