阅读量:0
在Java中,可以使用ExecutorService
接口的shutdownNow()
方法来强制结束并抛出任务。这个方法会尝试立即停止所有在执行的任务,并返回一个包含未执行的任务的列表。
下面是一个简单的示例代码,演示如何使用ExecutorService
和shutdownNow()
方法来强制结束并抛出任务:
import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; import java.util.List; public class Main { public static void main(String[] args) { ExecutorService executor = Executors.newSingleThreadExecutor(); // 提交一个任务 executor.submit(() -> { try { Thread.sleep(5000); // 模拟一个耗时任务 } catch (InterruptedException e) { System.out.println("任务被中断"); return; } System.out.println("任务完成"); }); // 等待一段时间后强制结束任务 try { List<Runnable> remainingTasks = executor.shutdownNow(); if (!remainingTasks.isEmpty()) { System.out.println("强制结束任务"); } } catch (Exception e) { e.printStackTrace(); } } }
在这个示例中,我们首先创建一个ExecutorService
并提交一个耗时5秒的任务。然后在等待一段时间后,调用shutdownNow()
方法来强制结束任务。如果有未执行的任务,将会打印出提示信息。