2013-11-02 29 views
0

停在那裏是類:如何要求,而從另一個類

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

實際上,您不能從相同的Thread中斷whileThread.sleep(2000)將永遠不會執行,因爲m.pullTrigger()將永遠運行。您的場景更可能發生在多線程設置中。有numerous SO topics covering this area,例如this one

+0

thx,現在我可以制定我的問題了。 – user2929711