思考了头疼,求救,如果判断线程已经被suspend了吗?

孤尽JavaSea 2010-03-10 03:05:26
if(CoreDealingThread.this.getState().equals(Thread.State.TIMED_WAITING))

用这种方法好像不行。
...全文
77 10 打赏 收藏 转发到动态 举报
写回复
用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()方法不是不提议用的吗。。。。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧