暂停线程并从停止的位置恢复它[重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

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

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

谢谢。

java multithreading
1个回答
2
投票

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

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

stop():停止一个线程

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

notify():唤醒一个线程。

wait():使当前线程等待..(或休眠),直到另一个线程为该线程调用notify()方法。

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

Note

在Java resume()的最新版本中,不推荐使用suspend()和stop()

Question from 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
© www.soinside.com 2019 - 2024. All rights reserved.