如何在Java中检查线程是否已经启动?
我有一个扩展线程的类 我将在某个点开始线程 一段时间后,我需要检查线程是否已经启动 这样我就可以在那个特定的点开始线程了 我的线程类是如何在Java中检查线程是否已经启动?,java,multithreading,Java,Multithreading,我有一个扩展线程的类 我将在某个点开始线程 一段时间后,我需要检查线程是否已经启动 这样我就可以在那个特定的点开始线程了 我的线程类是 public class BasicChatListener extends Thread{ public void run(){ } } 我需要知道BasicChatListener类的特定线程是否正在运行? 因为我的应用程序中已经运行了多个线程 我们的堆栈成员将如何帮助我。您可以使用和使用相应的 请注意,当您阅读此状态时,它可能已经
public class BasicChatListener extends Thread{
public void run(){
}
}
我需要知道
BasicChatListener
类的特定线程是否正在运行?
因为我的应用程序中已经运行了多个线程
我们的堆栈成员将如何帮助我。您可以使用和使用相应的
请注意,当您阅读此状态时,它可能已经改变,但您可以确定感兴趣的内容。查看可用的转换。您可以使用
isAlive
测试此线程是否处于活动状态。如果一个线程已经启动,但尚未终止,那么它是活动的。我使用此代码thread.isAlive()
您可以使用
返回此线程的状态。此方法设计用于监视系统状态,而不是用于同步控制
或布尔值
测试此线程是否处于活动状态。如果线程已启动但尚未死亡,则该线程是活动的
可以确定线程是否正在运行
测试此线程是否处于活动状态。如果线程已启动但尚未死亡,则该线程是活动的
);可以返回线程的确切状态
返回此线程的状态。此方法设计用于监视系统状态,而不是用于同步控制
使用其中一个
JavaDoc说:
测试此线程是否处于活动状态。如果线程已启动但尚未死亡,则该线程是活动的
或者,用作
JavaDoc说:
返回此线程的状态。此方法设计用于监视系统状态,而不是用于同步控制
您保存了对指定的
BasicChatListener
的引用,不是吗?看起来您需要创建一个只启动一个侦听器。您能否创建BasicChatListener
的实例并同时启动它?@Vignesh Vino但是如何引用BasicChatListener
线程进行检查呢?即使我的应用程序中也可以有多个线程?这就是我所问的。我需要知道一个类的特定线程是否正在运行?+1有用的链接状态图如何引用BasicChatListener
线程进行检查?可能最好使用监视器、信号灯或其他共享对象,因为线程状态有点有限。运行可能并不意味着开始到你想要的程度。链接不起作用+1对我来说,使用isAlive比调用getState并检查该州是否为新州更清楚。为什么会投反对票(
if (Thread.currentThread().isAlive())
Thread.State currState = Thread.currentThread().getState();
if (currState != Thread.State.NEW && currState != Thread.State.TERMINATED)