0

有课:

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

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

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

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

4

1 回答 1

1

你实际上不能while从同一个中断ThreadThread.sleep(2000)永远不会被执行,因为m.pullTrigger()永远运行。您的情况更有可能发生在多线程设置中。有许多 SO 主题涵盖这一领域,例如这个

于 2013-11-02T22:16:35.413 回答