如何在不创建 ExecutorService 的情况下仅执行一个线程并接收 Future?

How to execute only one thread and receive a Future without creating an ExecutorService?

我只需要执行一个具有取消功能的线程。我发现我可以使用 Future<T>s 来实现这一点。现在我这样使用它:

ExecutorService executorService = Executors.newSingleThreadExecutor();
Future<Void> future = executorService.submit(copyCallable);
executorService.shutdown();

由于 ExecutorServices 通常用于管理多个线程,我想知道是否有更有效的方法来实现这一点而无需创建线程。谢谢

Interryprion由线程和调用方法共同实现。您的线程需要在方便的时间点监听 InterruptedException 或检查中断标志。调用代码应调用 t.interrupt() 以通知线程它应该停止。