如果还没有完成,我需要在一段时间后强制停止Java中的方法。我使用while循环实现了该方法。但是,即使函数执行完成,它也会一直等待。
如果到此为止完成,我需要停止循环。
任何建议都很好。
从这里编辑
import java.util.concurrent.* ;
ExecutorService svc = Executors.newFixedThreadPool( 1 ) ;
svc.submit( new Runnable() {
public void run() {
myFunction();
}
} ) ;
svc.shutdown() ;
svc.awaitTermination( 300, TimeUnit.SECONDS ) ;
我尝试了这段代码。它工作正常。但是当我的功能由于时间限制而完成/退出时,代码会暂停一会儿。我不知道为什么。
最佳答案
从FutureTask调用函数,然后使用get(long,TimeUnit)方法。 TimeoutException将指示它在完成之前超时,否则您将获得函数的结果。