Java 如何使用相同的快捷键启动和停止线程?

Java 如何使用相同的快捷键启动和停止线程?,java,multithreading,Java,Multithreading,你好,我想用JAVA做一个if语句,如果线程没有运行,我们按下一个快捷键,线程开始运行,如果线程正在运行,我们按下相同的快捷键,线程停止运行 我的代码: if(!th.isAlive()){ th.start(); }else{ th.stop(); } 但是这个代码不起作用。请帮帮我 p、 s-如果在上面提到的快捷键中单击时发生此if语句,则应使用thread.interrupt(),因为调用stop()时线程死亡,因此无法重新启动。(见附件) 您可能对实现所描述的行

你好,我想用JAVA做一个if语句,如果线程没有运行,我们按下一个快捷键,线程开始运行,如果线程正在运行,我们按下相同的快捷键,线程停止运行

我的代码:

if(!th.isAlive()){
    th.start();
}else{
    th.stop();
    }
但是这个代码不起作用。请帮帮我


p、 s-如果在上面提到的快捷键中单击时发生此if语句,则应使用
thread.interrupt()
,因为调用stop()时线程死亡,因此无法重新启动。(见附件)


您可能对实现所描述的行为感兴趣。

您应该调用interrupt()方法来停止线程并捕获InterruptedException。您应该使用interrupt():stop()方法是无润滑的。方法start(),您只能调用一次。使用一些布尔标志&wait/notify停止/重新运行java.util.Concurrent中的代码或更方便的原语不起作用…在对线程执行任何操作之前,您需要阅读。如果有任何不推荐使用的方法应该不惜一切代价避免,那么它们将是Thread.stop、Thread.resume和Thread.suspend。