在完成时退出函数或在java中退出某个特定时间之后(即使它没有完成)

时间:2012-04-02 03:10:20

标签: java

如果还没有完成,我需要在一段时间后强制停止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由于时间限制而完成/退出时,代码会暂停一段时间。我不知道为什么。:(

1 个答案:

答案 0 :(得分:3)

FutureTask调用您的函数并使用get(long,TimeUnit)方法。 TimeoutException将指示它在完成之前超时,否则您将获得该函数的结果。