我有一个可运行的 jar 文件,我在其中运行 Start.java 文件。
Start.java 生成 3 个子线程。如何终止启动线程和子线程?
这是Start.java
public class Start {
public static void main(String[] args){
ListenersManager.start();
PollPatientPortalManager.start();
PollHISManager.start();
}
}
ListenersManager、PollPatientPortalManager 和 PollHISManager 都扩展了 Thread
。
最佳答案
起始线程是主
线程。要“杀死”它,您只需从 main()
返回即可。
对于其他线程,您可以在它们上调用.destroy()
和.stop()
。请注意,这些方法很粗鲁并且可能导致错误(这就是它们被弃用的原因)。
正确的解决方案是定义一个线程不时检查的“信号”(如共享标志)。要阻止它们,请发送信号。
要从命令行终止所有线程,只需终止进程(参见 man kill
)。
相关:
关于linux - 在可运行的 jar 中停止子线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24823857/