社区
Java SE
帖子详情
思考了头疼,求救,如果判断线程已经被suspend了吗?
孤尽JavaSea
2010-03-10 03:05:26
if(CoreDealingThread.this.getState().equals(Thread.State.TIMED_WAITING))
用这种方法好像不行。
...全文
66
10
打赏
收藏
思考了头疼,求救,如果判断线程已经被suspend了吗?
if(CoreDealingThread.this.getState().equals(Thread.State.TIMED_WAITING)) 用这种方法好像不行。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
孤尽JavaSea
2010-03-10
打赏
举报
回复
原来SUSPEND之后,也还是RUNNING
的
孤尽JavaSea
2010-03-10
打赏
举报
回复
奇怪了。
怎么还是不行呢。
梦_枫
2010-03-10
打赏
举报
回复
BLOCKED ////////////////////////////
hanwangyu
2010-03-10
打赏
举报
回复
BLOCKED
你用错状态了吧??试试上面这个状态看看行不行。
孤尽JavaSea
2010-03-10
打赏
举报
回复
那到底是什么状态,怎么没有一个正确答案呢。高手大侠们呢。
梦_枫
2010-03-10
打赏
举报
回复
LZ好像用错状态了吧
梦_枫
2010-03-10
打赏
举报
回复
java.lang.Thread.State类详解
public static enum Thread.Stateextends Enum<Thread.State>线程状态。线程可以处于下列状态之一:
1.NEW
至今尚未启动的线程的状态。
2.RUNNABLE
可运行线程的线程状态。处于可运行状态的某一线程正在 Java 虚拟机中运行,但它可能正在等待操作系统中的其他资源,比如处理器。
3.BLOCKED
受阻塞并且正在等待监视器锁的某一线程的线程状态。处于受阻塞状态的某一线程正在等待监视器锁,以便进入一个同步的块/方法,或者在调用 Object.wait 之后再次进入同步的块/方法。
4.WAITING
某一等待线程的线程状态。某一线程因为调用下列方法之一而处于等待状态:
不带超时值的 Object.wait
不带超时值的 Thread.join
LockSupport.park
处于等待状态的线程正等待另一个线程,以执行特定操作。 例如,已经在某一对象上调用了 Object.wait() 的线程正等待另一个线程,以便在该对象上调用 Object.notify() 或 Object.notifyAll()。已经调用了 Thread.join() 的线程正在等待指定线程终止。
5.TIMED_WAITING具有指定等待时间的某一等待线程的线程状态。某一线程因为调用以下带有指定正等待时间的方法之一而处于定时等待状态:
Thread.sleep
带有超时值的 Object.wait
带有超时值的 Thread.join
LockSupport.parkNanos
LockSupport.parkUntil
6.TERMINATED
已终止线程的线程状态。线程已经结束执行。
梦_枫
2010-03-10
打赏
举报
回复
好像如果一个线程被suspend()后再调用
System.Threading.Thread.Abort()方法
就会报 ThreadAbortException异常。
你可以通过这种方法判断一个线程是否被suspend()了。。。
孤尽JavaSea
2010-03-10
打赏
举报
回复
可我是为了方便,用了。
这个线程有时被suspend,有时被resume,我现在想知道它是不是被suspend.
按理说,这种判断的方式绝对是可行的。
可不知为什么,就是不行。闷。
梦_枫
2010-03-10
打赏
举报
回复
不知道LZ是在什么情况下要判断线程是不是阻塞了了(suspend),好像没有什么直接的方法可以判断了。。
suspend()方法不是不提议用的吗。。。。
相关推荐
Does it really ends? 论
线程
终止或被回收
从java2以后就不再推荐stop或
suspend
方法来终止
线程
,现在大都让
线程
执行完run方法(如果是后台进程则通过
判断
标示位跳出死循环结束run方法)的方式来结束
线程
,但是
线程
真的就结束了吗? 虽然持有
线程
对象引用的对象没有被销毁,但是也没再使用的情况下,执行完run方法的
线程
会象内存一样被JVM自动回收么? 没有google到结果,书上貌似也没讲...求指教如何真正的结束
线程
...
Java面试手册V2.0+突击V3.0知识点整理(十五) 附封面图片
1. 停止
线程
run方法执行完成,自然终止 stop()方法,
suspend
()以及resume()都是过期作废方法,使用它们结果不可预测 大多数停止一个
线程
的操作使用Thread.interrupt()等于说是给
线程
打了一个停止的标记,此方法不会去终止一个正在运行的
线程
,需要加入一个
判断
才可以完成
线程
的停止 2. interrupted和isInterrupted interrupted:
判断
当前
线程
是否
已经
中断,会清除状态 isInterrupted:
判断
线程
是否
已经
中断,不会清除状态 ..
Kotlin - 协程中的那些关键点
写在前面 1.协程“非阻塞式挂起” 你真的弄懂了吗? 2.协程
suspend
关键字到底有多神奇? 3.协程有了launch,还要async干啥?抱小三? 4.协程真的高大上吗? 1.非阻塞式挂起 阻塞:即程序因耗时操作等原因阻止
线程
继续运行 非阻塞:即不阻止程序继续运行 挂起:即wait,释放
已经
获取到的
线程
资源 非阻塞式挂起:不组织程序运行,还释放了
已经
获取到的
线程
资源 那么问题来了,你把资源都释放了我咋继续后续操作? Are you kid me? 他到底干了啥,有人说是关键字
suspend
,但是但是,
interrupted、isInterrupted
对于
线程
来说,动起来不是什么问题,但是如何让它停下来,就需要一些处理。 虽然stop、
suspend
、resume都可以使
线程
停下来,但是官方是不建议的,现在
已经
废弃了。 interrupt方法仅仅只是打了一个停止标记。
判断
线程
是否停止状态 interrupt isInterrupted public class Test148 { public static ...
Java里的
线程
安全的停止
stop() 源码中对stop()有@Deprecated注解,
已经
被废弃了,不再建议使用 原因: stop()会强制的终结一个
线程
, 无法保证
线程
的资源正常释放,没有给
线程
资源释放的机会,可能导致
线程
中使用的相关数据使用在不正确的情况下,
suspend
() 源码中对
suspend
()有@Deprecated注解,
已经
被弃用了,不再建议使用 原因: 调用
suspend
()方法后不会释放
已经
占有的资源,他会把资源拿着做睡眠状态,当其他正在运行的
线程
拿相关资源的时候必然拿不到,..
Java SE
62,567
社区成员
307,521
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告