考虑以下代码:-
class A {
Thread t = new Thread() {
@Override
public void run() {
super.run();
// Tons of statements.... (Set 1)
if(/* We don't meet certain requirements for continuing */) {
// Exit and stop the thread and do not execute any following statements after the if block
}
// Tons of statements.... (Set 2)
}
};
public void run() {
t.start();
}
}
class B {
public static void main(String[] args) {
A obj = new A();
obj.run();
}
}
我们用B类的main
开始程序。
并且stop()
被折旧。那么,实现必要的if
块的正确方法是什么。如果某些critera在continti之前没有满足,我们就进入if块,然后代码结束胎面,而不执行任何进一步的指令(在if块下面),然后线程立即死亡。
现在,一个简单而正确的解决方案就是将所有的SET2指令放在else
块中,
但我想知道是否有其他合适的方法来做到这一点。
它也会帮助我更好地理解线程。启动线程很容易,但停止它们总是会给我的大脑带来沉重的负担。
线程在其run
方法完成时终止。return
语句终止一个方法。因为方法run
不返回值,所以在if
块中写入return
将终止方法,随后终止线程。
if(/* We don't meet certain requirements for continuing */) {
return;
}
通过运行https://github.com/firebase/firebase-admin-java/blob/master/src/test/java/com/google/firebase/database/integration/shutdownexample.java的示例代码 调用后,仍有一些线程在运行: 参考处理程序终结器信号调度器FirebaseDatabaseWorker池-5-
问题内容: 对于连接到服务器的每个客户端,我都会生成一个新线程,如下所示: 现在,我知道可以使用以下代码关闭 所有 线程: 但是,如何从关闭线程 内 该线程? 问题答案: 启动线程时,它开始执行您提供的功能(如果要扩展,该功能将为)。要结束线程,只需从该函数返回即可。 根据这个,你也可以打电话,这将抛出一个异常,将安静地结束线程。
我通过创建固定数量的线程来使用执行器服务来进行HTTP GET数据检索。 当Tomcat停止时,我们会出现以下错误: 严重:web应用程序[/viewer]似乎已启动名为[ThreadExecutor_51616156]的线程,但未能停止该线程。这很可能会造成内存泄漏。 这是真的吗?在没有这些服务错误的情况下,如何正确停止tomcat。
问题内容: 我已经用GUI制作了一个Java程序,并且想要一个停止按钮功能,其中当用户单击停止按钮时,必须停止该程序。 在我的程序中,主线程启动其他10个线程,我希望每当单击“停止”按钮时,所有10个线程都必须在主线程之前停止。 其次,我还希望每当停止这10个线程中的任何一个线程时,它都必须先关闭它打开的所有资源,然后再连接数据库等。 我已经实现了.......回答的代码。 现在有一个问题。 我的
对不起,老问题。我已经澄清了。我如何用我可怜的线程类开始停止线程? 编辑:它在循环中,我想在代码开头再次重新启动它。我如何启动停止重新启动? 我的班级: 在主代码中,我希望:
代码非常简单,我搜索了一下,发现我只会用到 这似乎不起作用,我也尝试过使用平台参数,比如 下面是您可以运行的测试应用程序: 锁定得可拥有同步器:-无 更新:我正在Linux Fedora 16 64bit上使用最新的Oracle JDK 7u17 64bit。
我试图创建一个简单的pythongui(使用Tkinter),其中包含start按钮,在线程中运行while循环,以及停止while循环的stop按钮。 我对停止按钮有问题,它不会停止任何东西,一旦单击开始按钮,就会冻结GUI。 见下面的代码: 知道怎么解决这个问题吗?我肯定这是微不足道的,一定做了成千上万次,但我自己找不到解决办法。 谢谢大卫
我有一个简单的控制台应用程序,有时需要执行图形操作,对于那些我使用JavaFx框架(有一些功能,我需要像css样式的文本)我只是生成一些形状和文本到一个隐藏的场景,然后保存在文件中仅此而已, 我知道要使用JavaFx,我必须将图形操作传递给JavaFx线程,但是当一切都完成后,我必须关闭应用程序(几个小时后),这个JavaFx线程仍然保持打开...我真的不想强行退出System.exit(),因为