暂停线程并从停止的地方恢复

时间:2019-02-26 13:04:02

标签: java multithreading

我是Threads的新手。我有一个带有按钮的GUI,该按钮可以启动执行核心操作的线程;我还有另一个按钮,当按下该按钮时应暂停主线程。

是否可以从停止的地方恢复主线程? 问题的核心是线程从何处恢复,因此它不是重复的问题。

谢谢。

1 个答案:

答案 0 :(得分:2)

有很多方法可以操纵线程。

suspend():将线程置于暂停状态,可以使用resume()

恢复

stop():停止线程

resume():恢复使用suspend()暂停的线程。

notify():唤醒一个线程。

wait():使当前线程处于等待状态(或休眠),直到另一个线程对该线程调用notify()方法。

notifyAll():将唤醒所有休眠(等待)线程。

注意

在最新版本的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