2021-04-18 11:25  阅读(91)
文章分类:Java 基础教程 文章标签:JavaJava 教程
©  原文作者:w3cschool 原文地址:https://www.w3cschool.cn/java/java-thread-multiple.html

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();
      }
    }
    

上面的代码生成以下结果。

20210418112116_1.png

点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> Java 线程状态
上一篇
Java Volatile变量
下一篇
Java 原子变量