我有一个可运行的jar文件,我在其中运行Start.java文件。
Start.java产生3个子线程。如何杀死Start线程&孩子的线程?
这是Start.java
public class Start {
public static void main(String[] args){
ListenersManager.start();
PollPatientPortalManager.start();
PollHISManager.start();
}
}
ListenersManager,PollPatientPortalManager& PollHISManager全部扩展Thread
。
答案 0 :(得分:1)
起始线程是main
线程。要杀死"它,你只需要从main()
返回。
对于其他主题,您可以在其上调用.destroy()
和.stop()
。请注意,这些方法很粗糙,可能会导致错误(这就是他们被弃用的原因)。
正确的解决方案是定义一个"信号" (像共享标志一样)线程偶尔检查一次。要阻止它们,请发送信号。
要从命令行终止所有线程,只需终止该进程(参见man kill
)。
相关: