Java-在TimeoutException之后正确取消线程执行
我有一个java程序,它按计划运行,并通过RFC调用从外部源获取一些数据。RFC调用是线程化的,应在60秒后取消。我就是这样做的:Java-在TimeoutException之后正确取消线程执行,java,multithreading,future,Java,Multithreading,Future,我有一个java程序,它按计划运行,并通过RFC调用从外部源获取一些数据。RFC调用是线程化的,应在60秒后取消。我就是这样做的: Future<String> future = executor.submit(new MyCallable()); try { future.get(60, TimeUnit.SECONDS); } catch (TimeoutException e) { future.cancel(true); } 谢谢你在这方面的任何想法 干杯,
Future<String> future = executor.submit(new MyCallable());
try {
future.get(60, TimeUnit.SECONDS);
} catch (TimeoutException e) {
future.cancel(true);
}
谢谢你在这方面的任何想法
干杯,Jooo我相信在Java中,如果在执行过程中没有实现InterruptedException,就没有办法杀死线程。如果线程正在执行,它只是设置一个标志,由线程来注意它。如果线程正在等待或休眠,它将抛出InterruptedException 当然,不需要在每一行之后进行检查,但是需要花费很长时间来执行的方法负责正确处理中断 终止线程正在其中运行的进程。(例如,呼叫系统出口(int)。)
try {
future.get(60, TimeUnit.SECONDS);
} catch (TimeoutException e) {
future.cancel(true);
if(!future.isDone()){
System.exit(1);
}
}