我希望有人能帮助我解决这个问题。我已经寻找这个问题的答案大约一周了,但没有结果。
我目前有一个实现Runnable
的自定义线程类,我想在按键时暂停它。根据我的研究,我了解到解决此问题的最佳方法是使用 wait()
和 notify()
,由使用 key 的 key 触发绑定(bind)。
我的问题是,我怎样才能让它发挥作用?我似乎无法在不出现问题的情况下设置键绑定(bind),并且如何在不陷入死锁的情况下实现 wait()
和 notify()
超出了我的范围.
最佳答案
wait 和notify 旨在用于同步。在我看来,您似乎想使用 Thread.suspend()、Thread.stop() 和 Thread.resume() 等方法,但由于它们导致锁定问题的风险,这些方法已被弃用。
解决方案是使用一个辅助变量,线程将定期检查该变量以查看它是否应该运行,否则,yield(或 sleep )
为什么不使用暂停、停止或恢复:http://docs.oracle.com/javase/6/docs/technotes/guides/concurrency/threadPrimitiveDeprecation.html
简单的解决方案: How to Pause and Resume a Thread in Java from another Thread
关于java - 在 Java 中按键时暂停/取消暂停线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22899461/