我是Threads的新手。我有一个带有按钮的GUI,该按钮可以启动执行核心操作的线程;我还有另一个按钮,当按下该按钮时应暂停主线程。
是否可以从停止的地方恢复主线程? 问题的核心是线程从何处恢复,因此它不是重复的问题。
谢谢。
答案 0 :(得分:2)
有很多方法可以操纵线程。
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