我是线程新手。我有一个带有按钮的 GUI,用于启动执行核心操作的线程;我有另一个按钮,按下它应该暂停主线程。
是否可以从停止的地方恢复主线程? 问题的核心是线程从哪里恢复,因此它不是重复的问题。
谢谢。
最佳答案
有很多方法可以操作线程。
suspend()
:将线程置于挂起状态,并且可以使用resume()
恢复
stop()
:停止线程
resume()
:恢复使用suspend()
挂起的线程。
notify()
:唤醒单个线程。
wait()
:使当前线程等待..(或 sleep ),直到另一个线程调用该线程的 notify()
方法。
notifyAll()
:将唤醒所有 sleep (等待)线程。
注意
在最新版本的 Java 中,resume( )、 suspend( ) 和 stop( ) 已被弃用
来自OP的问题
但是当我唤醒它时,它从哪里恢复?是从头开始还是从离开的地方开始?
想象一个简单的for
循环。
Starting thread 1.
Starting thread 2.
Thread 1: 0
Thread 2: 0
Thread 1: 1
Thread 2: 1
Pausing thread 1.
Thread 2: 2
Thread 2: 3
Thread 2: 4
Resuming thread 1.
Thread 1: 2
Thread 2: 5
关于java - 暂停线程并从停止的地方恢复它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54886194/