如果还没有完成,我需要在一段时间后强制停止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 ) ;
我试过这段代码。它运作正常。但是当myfunction由于时间限制而完成/退出时,代码会暂停一段时间。我不知道为什么。:(
答案 0 :(得分:3)
从FutureTask调用您的函数并使用get(long,TimeUnit)方法。 TimeoutException将指示它在完成之前超时,否则您将获得该函数的结果。