2011-06-02 42 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();