Java并发编程系列之二:线程状态-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

Java并发编程系列之二:线程状态

简介:

线程的状态一共有6种,在任意时刻线程的状态只能是其中的一种。正确理解线程的状态有助于我们更容易理解线程。具体的线程状态如下:

状态名称 说明
NEW 初始状态,线程被构建,但是还没有调用start方法
RUNNING 运行状态
BLOCKED 阻塞状态,表示线程阻塞于锁
WAITING 等待状态,表示线程线程进入等待状态,进入该状态后需要其他线程做出通知动作
TIME_WAITING 超时等状态状态,该状态与WAITING不同,它是可以在指定时间内自行返回的
TERMINATED 终止状态,表示当前线程已经执行完毕

这六种状态是可以相互进行转化的,下面是具体的转化过程:

线程状态

可以看到,线程创建之后,调用start()方法开始运行。当线程执行wait()方法之后,线程进入等待状态。进入等待状态的线程需要依靠其他线程的通知才能够返回到运行状态,而超时等待状态相当于在等待状态基础上增加了时间的限制,就是说,超过了设定的时间限制就会返回到运行状态。当线程调用同步方法的时候,在没有获取到锁的情况下,线程会进入阻塞状态。线程在执行Runnable的run()方法之后会进入到终止状态。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章
最新文章
相关文章