java 方法超时
时间: 2023-08-04 16:18:01 浏览: 52
Java 中可以使用 `java.util.concurrent.TimeoutException` 异常来实现方法超时的功能。具体实现如下:
```java
import java.util.concurrent.*;
public class MethodTimeoutExample {
public static void main(String[] args) {
ExecutorService executor = Executors.newSingleThreadExecutor();
Future<String> future = executor.submit(new Callable<String>() {
@Override
public String call() throws Exception {
// 在这里执行需要超时控制的方法
// 如果该方法在 5 秒内未执行完毕,将会抛出 TimeoutException 异常
Thread.sleep(6000);
return "Hello, world!";
}
});
try {
String result = future.get(5, TimeUnit.SECONDS);
System.out.println(result);
} catch (TimeoutException e) {
System.out.println("方法执行超时!");
} catch (Exception e) {
e.printStackTrace();
}
executor.shutdown();
}
}
```
在上述代码中,通过 `executor.submit()` 方法将需要执行的方法提交给线程池,然后通过 `future.get(5, TimeUnit.SECONDS)` 方法来获取方法执行结果。如果方法在 5 秒内未执行完毕,将会抛出 `TimeoutException` 异常,从而实现方法超时的功能。