2011-06-02 65 views
0

我想暫停我的遊戲,但是,我只知道Thread.sleep,並且,我不知道如何讓它實際上暫停,直到您繼續使用該方法。我將如何暫停我的遊戲,直到我想恢復它?在Java中暫停Thead?

+0

參見[這裏這個例子(http://www.exampledepot.com/egs /java.lang/PauseThread.html) – 2011-06-02 19:16:00

+0

您的遊戲是由事件循環還是由用戶事件/計時器驅動的? – aioobe 2011-06-02 19:16:01

+0

Thread.yield()??? – RMT 2011-06-02 19:18:30

回答

3

使其等待條件:

synchronized(lock) { 
while(paused) { 
    lock.wait(); 
} 
} 

現代的方式做同樣的事情,就是用java.util.concurrent.locks.Conditionlink

+0

這給了我一個主意。讓我把這個測試。 – Stan 2011-06-02 19:24:51

+0

+1。贏的條件! – Toby 2011-06-06 08:01:48

0

您可以使用鎖

private final Lock pauser = new ReentrantLock(); 

在要暫停該線程。

pauser.lock(); 
pauser.unlock(); 

要停止任何試圖使用pauser

pauser.lock(); 

要釋放pauser

pauser.unlock();