从子类中完成Main()

时间:2012-06-21 16:54:33

标签: java terminate

我有一个Main()按计划执行Thread。 如果发生异常(e.printStackTrace),则线程将中止并等待,直到下一次启动。

我希望能够在不抛出异常的情况下中止线程。 在Main() - Class中,它相当容易,只是“返回false”,并且线程结束。

但是当我在一个类的Class / Object中时,我不能这样做。 如何从子类中中止/完成Main?

3 个答案:

答案 0 :(得分:0)

您想要中止线程,还是要关闭VM?

如果要停止VM,请尝试Runtime.getRuntime()。exit(0);

停止任意运行的线程通常不安全,请尝试阅读: http://docs.oracle.com/javase/6/docs/technotes/guides/concurrency/threadPrimitiveDeprecation.html

更好地解释情况。

答案 1 :(得分:0)

如果我理解你,你不想关闭整个程序,只是一些线程?

你需要从你进入的所有子方法返回。你能说明你的方法run()在你的线程中的样子吗?

例如:如果从某个函数(doSomething())返回,则需要从方法run()返回:

@Override
public void run() {
    while (true) {
        doSomething(); // - your main function
    }
}

检查一下条件。如果您想退出设定值boolean exiting = true;并在循环中检查它:if (exiting) return;

关闭任何线程的正确方法是从方法run

返回

答案 2 :(得分:-1)

您可以尝试System.exit(0)。

如果有效,请告诉我们。