Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中检查线程是否已经启动?_Java_Multithreading - Fatal编程技术网

如何在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)