是的,您可以将替换
flag(或在逻辑上
&&)
!Thread.currentThread().isInterrupted()。
这样,当任务取消时,循环将终止。
循环看起来像这样:
while(!Thread.currentThread().isInterrupted() && flag) { }使用应该是这样的:
ExecutorService executor = Executors.newSingleThreadExecutor();Future<String> task = executor.submit(new Task());String str;try { str = task.get(5, TimeUnit.SECONDS);} finally { task.cancel(true);}


