系统相关
首页 > 系统相关> > java-如何在有时间限制的情况下停止进程

java-如何在有时间限制的情况下停止进程

作者:互联网

我认为该主题可能不够准确,但是我真的不知道如何以非常简短的方式描述它.

我想做的如下:
我有一个进程在运行一些分析(使用Java)并尝试提供返回值,但是整个分析都有时间限制,例如10秒

如果分析结果在10秒钟之内,
   返回结果;
其他,
   达到10s时加倍,停止过程并返回虚拟值

我是该领域的新手,欢迎任何建议.

解决方法:

您可以使用FutureTask创建作业并在特定时间内请求结果(使用带超时的get()).如果违反了该时间范围,那么您将获得一个例外.

此时,您可以将参数设置为true来调用cancel()方法,以强制中断并取消基础任务.

Object result = DUMMY;
try {
   result = futureTask.get(5, TimeOut.SECONDS);
}
catch (TimeoutException e) {
   futureTask.cancel(true);
}

标签:constraints,event-handling,listener,java,time
来源: https://codeday.me/bug/20191107/2003353.html