如何要求停止从另一个班级

时间:2013-11-02 22:10:03

标签: java

有课程:

public class M16
 {
  public boolean on = true;
  void shoot ()
  {
    System.out.println("Bang");
  }
  void pullTrigger()
  {
    while(on) shoot();
  }
 }

我想在调用pullTrigger()方法后设置我的标志。像这样:

    M16 m = new M16();
    m.pullTrigger();
    Thread.sleep(2000);
    m.on = false; 

这是一个简单的问题,但我不知道我需要做什么。

1 个答案:

答案 0 :(得分:1)

您实际上无法从同一while中断Thread。永远不会执行Thread.sleep(2000)因为m.pullTrigger()永远运行。您的方案更有可能在多线程设置中发生。有numerous SO topics covering this area,例如this one