如何在运行时停止/杀死长时间运行的 Java 线程? 超时 -> 取消 -> 中断状态

已发表: 2021-07-17

如何杀死比预期更长的Java线程完成?超时 -> 取消 -> 中断状态

你有没有想过如何杀死长时间运行的 Java 线程? 您有以下任何问题吗?

  • 一段时间后杀死/停止线程
  • 在Java中的某个指定时间限制后杀死线程
  • 如何杀死一个 Java 线程
  • 如何通过示例停止 Java 中的线程
  • 如何在java代码示例中停止线程
  • 如何在不使用停止方法的情况下停止java中的线程

如果您有以下任何问题,那么您来对地方了。 今天我们将通过一个简单的例子来演示 Java8 杀死长时间运行的线程的方法。

什么是逻辑:

  1. 创建类 CrunchifyJavaTaskTimeout.java
  2. 创建只有 1 个线程池大小的 Java 线程执行器。
  3. CrunchifyRunner对象创建 4 个未来任务,超时时间为 3 秒
  4. CrunchifyRunner.java 是一个实现call()方法的简单类
    • 如果futureTask = 4 ,它会引入20 seconds的延迟
  5. 一旦未来达到3 seconds的时间,如果线程仍在运行,它就会创建超时异常
    • 一旦超时,我们需要使用 crunchifyFuture 取消任务。 cancel( true )
    • 一旦futureTask被取消,它就会触发InterruptedException (当线程正在等待、休眠或以其他方式被占用,并且线程在活动之前或活动期间被中断时抛出。有时一个方法可能希望测试当前线程是否已被中断,如果是这样,立即抛出这个异常。)

让我们开始吧:

Step-1 创建 CrunchifyRunner.java 类

Step-2 创建类 CrunchifyJavaTaskTimeout.java

第三步

右键单击 CrunchifyJavaTaskTimeout.java 并将其作为 Java 应用程序运行。

您将在 Eclipse 控制台中看到以下结果。

如何在运行时杀死停止java线程

如果您对此主题有任何疑问,请告诉我。