如何在 Java 中停止线程?

javaobject oriented programmingprogramming更新于 2024/5/16 9:44:00

每当我们想停止正在运行的线程时,都可以调用 Java 中 Thread 类的 stop()  方法。此方法停止正在运行的线程的执行,并将其从等待线程池中移除并进行垃圾回收。当线程到达其方法的末尾时,它还将自动进入死亡状态。由于线程安全问题,stop() 方法在 Java 中已弃用

语法

@Deprecated
public final void stop()

示例

import static java.lang.Thread.currentThread;
public class ThreadStopTest {
   public static void main(String args[]) throws InterruptedException {
      UserThread userThread = new UserThread();
      Thread thread = new Thread(userThread, "T1");
      thread.start();
      System.out.println(currentThread().getName() + " is stopping user thread");
      userThread.stop();
      Thread.sleep(2000);
      System.out.println(currentThread().getName() + " is finished now");
   }
}
class UserThread implements Runnable {
   private volatile boolean exit = false;
   public void run() {
      while(!exit) {
         System.out.println("The user thread is running");
      }
      System.out.println("The user thread is now stopped");
   }
   public void stop() {
      exit = true;
   }
}

输出

main is stopping user thread
The user thread is running
The user thread is now stopped
main is finished now

相关文章