终结任务-阿里云开发者社区

开发者社区> javaedge> 正文

终结任务

简介: 终结任务
+关注继续查看

线程状态


  • 新建(new):当线程被创建时,线程会短暂地处于这种状态。此时,线程已经被分配了必需的系统资源并执行了初始化。此刻线程已有资格获得CPU时间,之后调度器将把这个线程转变为可运行或阻塞状态
  • 就绪(Runnable):在此状态下,只要调度器将时间片分配给线程,线程就可以运行。在任意时刻,线程可运行也可不运行.
  • 阻塞(Blocked):线程能够运行,但某个条件阻碍了运行。当线程处此状态时,调度器将忽略该线程,不会分配给其任何的CPU时间。直到重入就绪态,才有可能执行操作
  • 死亡(Dead):处于死亡或终止态的线程将不再是可调度的,并且再也不会再得到CPU时间片,它的任务已结束,不再可运行。任务死亡的通常方式是从run()返回.

进入阻塞状态

可能原因:

  • 调用sleep()使任务进入休眠。此时,线程在指定时间内不会运行
  • 调用了wait()使线程挂起。直到线程得到notify()或notifyAll()消息(或者为JAVA5的juc包下的signal(),signalAll()消息),线程才会进入就绪态
  • 线程在等个某个输入/输出完成
  • 线程试图在某个对象上调用其同步方法,但此时对象锁被另一个线程持有不可用


suspen(),resume()因可能导致死锁被废止,stop()不释放获得的锁,亦被废止


对于处于阻塞状态的线程,必须强制这个线程跳出阻塞状态后,才可以让线程主动地终止

中断

Thread类包含interrupt(),可以用来终止一个被阻塞的线程,此方法将设置线程的中断状态.若此时线程正好处于休眠, 阻塞或者挂起,就会抛出InterruptedException异常,然后中断状态便会被清除

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

相关文章
阿里巴巴数据库分库分表的实践(5)
阿里巴巴数据库分库分表的实践(5)
10 0
金融机构如何应对核心系统分布式智能化升级大潮?
1月18日,阿里云发布“核心转型路书” ,并推出“金融级云原生工场”,更是以颇为干货的内容,详细阐述了阿里云在参与支持我国金融机构实现核心分布式智能化转型中的成功实践。在详细阅读了全书之后,笔者认为金融机构的核心系统升级的时代大戏已经开启,并将在阿里云的引领下逐渐走向高潮。
4 0
阿里巴巴数据库分库分表的实践(6)
阿里巴巴数据库分库分表的实践(6)
9 0
SpringBoot Scheduling定时任务
SpringBoot Scheduling定时任务
4 0
【技术干货】40页PPT分享万亿级交易量下的支付平台设计(6)
【技术干货】40页PPT分享万亿级交易量下的支付平台设计(6)
14 0
quartz定时任务
quartz定时任务
5 0
xxl-job admin的使用
xxl-job admin的使用
6 0
xxl-job 编写定时任务
xxl-job 编写定时任务
9 0
SpringBoot Quartz页面交互控制
SpringBoot Quartz页面交互控制
4 0
【技术干货】40页PPT分享万亿级交易量下的支付平台设计(3)
【技术干货】40页PPT分享万亿级交易量下的支付平台设计(3)
15 0
+关注
javaedge
关注公众号:JavaEdge,后台回复面试,领取更多大厂求职资源。曾在百度、携程、华为等大厂搬砖,专注Java生态各种中间件原理、框架源码、微服务、中台等架构设计及落地实战,只生产硬核干货!
2316
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载