这个问题在这里已有答案:
我是Threads的新手。我有一个带有按钮的GUI,它启动一个执行核心操作的线程;我有另一个按钮,按下时应该暂停主线程。
是否可以从停止的位置恢复主线程?问题的核心是线程从何处恢复,因此它不是一个重复的问题。
谢谢。
有很多方法可以操纵线程。
suspend()
:将线程置于暂停状态,可以使用resume()
恢复
stop()
:停止一个线程
resume()
:恢复使用suspend()
暂停的线程。
notify()
:唤醒一个线程。
wait()
:使当前线程等待..(或休眠),直到另一个线程为该线程调用notify()
方法。
notifyAll()
:将唤醒所有睡眠(等待)线程。
在Java resume()的最新版本中,不推荐使用suspend()和stop()
但是当我把它唤醒时,它会从哪里恢复?它是从头开始还是从它离开的地方开始?
想象一个简单的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