如何在不使用已弃用的 Thread.stop() 方法的情况下有效地终止线程
Java Thread 类提供了 stop() 方法作为终止线程的方法,但它已被弃用,不应使用。本文介绍了一种使用中断方法终止线程的替代方法。
使用中断来停止线程
而不是直接调用 stop(),这是不安全的并且可能导致数据损坏,我们可以使用中断向线程发出信号,告知它应该正常终止。它的工作原理如下:
public class InterruptedExceptionExample { private static volatile boolean shutdown = false; public static void main(String[] args) { Thread thread = new Thread(() -> { while (!shutdown) { try { System.out.println("Running..."); Thread.sleep(5000); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } }); thread.start(); System.out.println("Press enter to quit"); try { System.in.read(); } catch (IOException e) { e.printStackTrace(); } shutdown = true; thread.interrupt(); } }
在此代码中:
使用的优点中断:
与已弃用的 stop() 相比,中断线程有几个优点:
以上是如何在不使用 Thread.stop() 的情况下安全停止 Java 线程?的详细内容。更多信息请关注PHP中文网其他相关文章!