社区
Java SE
帖子详情
思考了头疼,求救,如果判断线程已经被suspend了吗?
孤尽JavaSea
2010-03-10 03:05:26
if(CoreDealingThread.this.getState().equals(Thread.State.TIMED_WAITING))
用这种方法好像不行。
...全文
76
10
打赏
收藏
思考了头疼,求救,如果判断线程已经被suspend了吗?
if(CoreDealingThread.this.getState().equals(Thread.State.TIMED_WAITING)) 用这种方法好像不行。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
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()方法不是不提议用的吗。。。。
线程
的挂起(
suspend
)和继续执行(resume)是什么情况?
前言 本文隶属于专栏《100个问题搞定Java并发》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见100个问题搞定Java并发 正文 如果你阅读 JDK 有关 Thread 类的 API 文档,可能还会发现两个看起来非常有用的接口,即
线程
挂起(
suspend
)和继续执行( resume )。 这两个操作是一对相反的操作,被挂起的
线程
,必须要等到 resume 方法操作后,才能继续指定。 乍看之下,这对操作就像 Thread.stop() 方
线程
之
suspend
和resume方法
suspend
() 和 resume() 方法:两个方法配套使用,
suspend
()使得
线程
进入阻塞状态,并且不会自动恢复,必须其对应的 resume() 被调用,才能使得
线程
重新进入可执行状态。
suspend
() 和 resume() 方法有很多缺点。下面将其缺点列举一二 1.当
suspend
() 和 resume() 方法使用不当时极容易造成公共同步对象的独占,使其他
线程
无法访问公
Java暂停/挂起
线程
(
suspend
())和恢复
线程
(resume())
暂停
线程
意味着此
线程
还可以恢复运行。在Java多
线程
中,可以使用
suspend
() 方法暂停
线程
,使用 resume() 方法恢复
线程
的执行。
suspend
() 与 resume() 方法 本节通过一个案例来介绍
suspend
() 与 resume() 方法的用法。首先来看一下案例中使用到的 MyThread21
线程
,代码如下所示。 package ch14; public class MyThread21 extends Thread { private long i=0; ..
Thread之
线程
状态和
suspend
()
package com.hanyxx.thread; import lombok.Data; /** *
suspend
()是一个过时方法。 * 它会使
线程
进入暂停状态,如果方法有synchronized修饰,那么它会持有锁,造成死锁 * @author layman * @date 2021/2/5 */ public class Thread
Suspend
{ private static demo01 demo01 = new demo01(); public static
暂停
线程
suspend
()和恢复
线程
resume()
1、使用
suspend
()方法暂停
线程
(挂起) : 运行->阻塞 2、使用resume()方法恢复
线程
: 阻塞->就绪
suspend
() 和 resume() 被用在等待另一个
线程
产生的结果的情 形:测试发现结果还没有产生后,让
线程
阻塞,另一个
线程
产生了结果后,调用 resume() 使其恢复。但
suspend
()方法很容易引起死锁问题,
已经
不推荐使用了。public class Run
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章