如何中断我当前运行的线程?

时间:2012-11-15 13:33:25

标签: java multithreading thread-safety

我的谷歌技能似乎让我失望,如果这是一个简单的问题,请道歉。

我只是想打断(我认为“杀死”我正在运行的线程。

我的类实现了Runnable,并且在run()方法内部,如果满足某个条件,我希望线程中断。

干杯! :)

2 个答案:

答案 0 :(得分:2)

另一个选项取决于上下文。 Thread.interrupt可能会更好,但是这个也可能只是在你的类中引入一个取消布尔值。

public class MyLongRunningTask implements Runnable
{
   private volatile boolean cancelled;

   public void run() {
      while (!cancelled) {
         System.out.println("Do something...");
      }
   }

   public void setCancelled(boolean cancelled) {
      this.cancelled = cancelled;
   }
}

答案 1 :(得分:-1)

您有两种选择:

return;

最正确和推荐

Thread.currentThread().interrupt();