终结任务
发布日期:2021-06-30 12:34:11
浏览次数:2
分类:技术文章
本文共 707 字,大约阅读时间需要 2 分钟。
线程状态
- 新建(new):当线程被创建时,线程会短暂地处于这种状态。此时,线程已经被分配了必需的系统资源并执行了初始化。此刻线程已有资格获得CPU时间,之后调度器将把这个线程转变为可运行或阻塞状态
- 就绪(Runnable):在此状态下,只要调度器将时间片分配给线程,线程就可以运行。在任意时刻,线程可运行也可不运行.
- 阻塞(Blocked):线程能够运行,但某个条件阻碍了运行。当线程处此状态时,调度器将忽略该线程,不会分配给其任何的CPU时间。直到重入就绪态,才有可能执行操作
- 死亡(Dead):处于死亡或终止态的线程将不再是可调度的,并且再也不会再得到CPU时间片,它的任务已结束,不再可运行。任务死亡的通常方式是从run()返回.
进入阻塞状态
可能原因:
- 调用sleep()使任务进入休眠。此时,线程在指定时间内不会运行
- 调用了wait()使线程挂起。直到线程得到notify()或notifyAll()消息(或者为JAVA5的juc包下的signal(),signalAll()消息),线程才会进入就绪态
- 线程在等个某个输入/输出完成
- 线程试图在某个对象上调用其同步方法,但此时对象锁被另一个线程持有不可用
suspen(),resume()因可能导致死锁被废止,stop()不释放获得的锁,亦被废止
对于处于阻塞状态的线程,必须强制这个线程跳出阻塞状态后,才可以让线程主动地终止
中断
Thread类包含interrupt(),可以用来终止一个被阻塞的线程,此方法将设置线程的中断状态.若此时线程正好处于休眠, 阻塞或者挂起,就会抛出InterruptedException异常,然后中断状态便会被清除
转载地址:https://javaedge.blog.csdn.net/article/details/78715552 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年04月28日 03时43分01秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
基于java的酒店管理系统的设计与实现
2019-04-30
基于java的客户关系管理系统的设计与实现
2019-04-30
十二时辰篇:这该死的 996
2019-04-30
2021最新 上海互联网公司排名
2019-04-30
字节vs快手!取消大小周之战
2019-04-30
送一个闲置显示器!
2019-04-30
这是张自带声音的图片
2019-04-30
抖音超火:勇敢牛牛,不怕困难表情包全集
2019-04-30
程序员之间的各种鄙视链
2019-04-30
基于PHP的网上商城
2019-04-30
基于PHP和MySQL实现的高校成绩管理系统
2019-04-30
基于TCP socket实现的HTTP WEB服务器
2019-04-30
基于Web搜索引擎的设计与实现
2019-04-30
图书管理系统
2019-04-30
基于AdaBoost算法的情感分析研究
2019-04-30
基于C的α-β剪枝算法实现的AI五子棋游戏
2019-04-30
基于Python的Django和MySQL实现的合同管理系统
2019-04-30
基于python实现的电影推荐系统
2019-04-30
基于QT的网络五子棋游戏程序的设计与实现
2019-04-30
基于SOA的分布式水果商店系统
2019-04-30