如何暂停某些线程的执行。我有 Thread t 和两个按钮,PAUSE 和 CONTINUE。暂停时我需要暂停线程执行并继续线程从之前停止的点开始执行。在听众中放什么?
最佳答案
Java 中的线程是协作的,这意味着您不能强制线程停止或暂停,而是您向线程发出您想要的信号,然后线程(= 您的逻辑)自行执行。
为此使用同步、wait() 和 notify()。
- 在要停止的线程中创建一个原子标志(例如 boolean 字段)。可停止线程在循环中监视此标志。循环必须在
synchronized
block 内。 - 当您需要停止线程(单击按钮)时,您可以设置此标志。
- Thread 看到标志已设置并在公共(public)对象(可能是它自己)上调用
wait()
。 - 当你想重启线程时,重置标志并调用
commonObject.notify()
。
关于java - 如何暂停线程执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6058395/