6

我有一个扩展Thread的类。

我将在某个时候启动线程。

一段时间后,我需要检查该线程是否已经启动?

这样我就可以在该特定点启动线程。

我的线程类将是,

public class BasicChatListener extends Thread{

    public void run(){


    }

}

我需要知道某个类的特定线程BasicChatListener是否正在运行?因为我的应用程序中已经有多个线程正在运行。

我们的堆栈成员将如何帮助我。

4

6 回答 6

6

您可以使用Thread.getState()并使用相应的states

请注意,当您阅读此状态时,它可能已经发生了变化,但您可能能够确定一些感兴趣的东西。查看此状态图以了解可用的转换。

于 2013-07-02T09:47:32.173 回答
3

使用Thread#isAlive()

if (Thread.currentThread().isAlive())

JavaDoc 说:

测试此线程是否存在。如果线程已启动且尚未死亡,则该线程处于活动状态。

或者,使用Thread#getState()作为

Thread.State currState = Thread.currentThread().getState();
if (currState != Thread.State.NEW && currState != Thread.State.TERMINATED)

JavaDoc 说:

返回此线程的状态。此方法设计用于监控系统状态,而不是用于同步控制。

于 2013-07-02T09:49:37.250 回答
1

你可以用isAlive检查它..

isAlive测试这个线程是否还活着。如果线程已启动且尚未死亡,则该线程处于活动状态。

于 2013-07-02T09:47:56.887 回答
1

我使用此代码Thread.isAlive()

于 2013-07-02T09:48:18.773 回答
1

您可以使用GetState()

返回此线程的状态。此方法设计用于监控系统状态,而不是用于同步控制。

或布尔 isAlive()

测试此线程是否存在。如果线程已启动且尚未死亡,则该线程处于活动状态。

于 2013-07-02T09:48:40.800 回答
1

Thread.isAlive()可以确定线程是否正在运行。

测试此线程是否存在。如果线程已启动且尚未死亡,则该线程处于活动状态。

线程#getState() ; 可以返回线程的确切状态。

返回此线程的状态。此方法设计用于监控系统状态,而不是用于同步控制。

于 2013-07-02T09:48:50.527 回答