実行中のスレッドを一時停止するには

実行中のスレッドを一時停止するには、スレッドクラスの suspend() メソッドでスレッドを一時停止し、resume() メソッドでスレッドの実行を再開できます。

以下にコード例を示します。

public class MyRunnable implements Runnable {
private boolean isPaused = false;
public synchronized void pause() {
isPaused = true;
}
public synchronized void resume() {
isPaused = false;
notify();
}
@Override
public void run() {
while (true) {
synchronized (this) {
while (isPaused) {
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
// 线程的执行逻辑
System.out.println("Thread is running");
}
}
}

このコードでは、`isPaused` フィールドを追加してスレッドの一時停止と再開を制御しています。`pause()` メソッドは `isPaused` を `true` に設定し、`resume()` メソッドは `isPaused` を `false` に設定してメソッド `notify()` を呼び出しスレッドをウェイクします。

以下に、記述したコードを使ってスレッドを一時停止したり再開する方法を示します。

public class Main {
public static void main(String[] args) throws InterruptedException {
MyRunnable runnable = new MyRunnable();
Thread thread = new Thread(runnable);
thread.start();
// 暂停线程
runnable.pause();
// 线程暂停后执行其他逻辑
System.out.println("Thread is paused");
// 恢复线程
runnable.resume();
// 线程恢复后继续执行
}
}

具体的なニーズをもとにスレッドの実行をいつ中断または再開するかを判断できます。

コメントを残す 0

Your email address will not be published. Required fields are marked *


广告
広告は10秒後に閉じます。
bannerAds