如何暂停某些线程的执行。我有 Thread t 并且有两个按钮:暂停和继续。暂停时,我需要暂停线程执行,然后继续线程从之前停止的位置开始执行。听众中应该放什么?
Java 中的线程是协作的,这意味着您不能强制线程停止或暂停,而是向线程发出您想要的信号,然后线程(=您的逻辑)自行执行。
为此,请使用synchronized、wait() 和notify()。
- 在要停止的线程中创建一个原子标志(例如布尔字段)。可停止线程在循环中监视此标志。循环必须在内部
synchronized
block.
- 当您需要停止线程(单击按钮)时,您可以设置此标志。
- 线程看到标志已设置并调用
wait()
在一个共同的对象上(可能是它本身)。
- 当你想重新启动线程时,重置标志并调用
commonObject.notify()
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)