-1

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

我希望能够在不抛出异常的情况下中止线程。在 Main()-Class 中它相当简单,只需“返回 false”,线程就结束了。

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

4

3 回答 3

0

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

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

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

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

只是检查一些条件。如果要退出设置值boolean exiting = true;并在循环中检查它:if (exiting) return;

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

于 2012-06-21T17:01:04.650 回答
0

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

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

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

以便更好地说明情况。

于 2012-06-21T17:00:50.187 回答
-1

你可以试试 System.exit(0)。

让我们知道这是否有效。

于 2012-06-21T16:58:43.317 回答