Java 线程状态
2018-02-28 15:01 更新
Java线程教程 - Java线程状态
停止,挂起和恢复线程
下面的代码演示了如何模拟Thread类中的stop(),suspend()和resume()方法。
public class Main extends Thread {
private volatile boolean keepRunning = true;
private boolean suspended = false;
public synchronized void stopThread() {
this.keepRunning = false;
this.notify();
}
public synchronized void suspendThread() {
this.suspended = true;
}
public synchronized void resumeThread() {
this.suspended = false;
this.notify();
}
public void run() {
System.out.println("Thread started...");
while (keepRunning) {
try {
System.out.println("Going to sleep...");
Thread.sleep(1000);
synchronized (this) {
while (suspended) {
System.out.println("Suspended...");
this.wait();
System.out.println("Resumed...");
}
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) throws Exception {
Main t = new Main();
t.start();
Thread.sleep(2000);
t.suspendThread();
Thread.sleep(2000);
t.resumeThread();
Thread.sleep(2000);
t.stopThread();
}
}
上面的代码生成以下结果。

以上内容是否对您有帮助:

免费 AI IDE


更多建议: