在Java中暂停线程?

时间:2011-06-02 19:14:25

标签: java multithreading

我想暂停我的游戏,但是,我只知道Thread.sleep,并且,我不知道如何让它实际暂停,直到你继续使用该方法。我将如何暂停游戏,直到我想恢复它?

3 个答案:

答案 0 :(得分:3)

让它等待条件:

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

做同样事情的现代方法是使用java.util.concurrent.locks.Condition link

答案 1 :(得分:2)

在每次迭代之前,您需要使用waitnotify来锁定对象。如果对象在对象上发出wait,则游戏暂停,直到用户选择恢复选项并使用notify调用释放对象。

查看此链接以获取教程.. http://www.java-samples.com/showtutorial.php?tutorialid=306

答案 2 :(得分:0)

您可以使用锁定

private final Lock pauser = new ReentrantLock();

在您要暂停的主题中。

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

停止尝试使用暂停的任何内容

pauser.lock();

释放暂停

pauser.unlock();