Java:如何确保接口方法不比X花费更多时间?

前端之家收集整理的这篇文章主要介绍了Java:如何确保接口方法不比X花费更多时间?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个接口方法boolean right(),如果它在一秒钟内没有“回答”,它应该返回false.

解决方法

是的,这可以用例如 java.util.concurrent.Future<V>(表示类型V的异步计算结果的标准接口),结合方法 get(long timeout,TimeUnit unit).除其他异常外,该方法可能抛出TimeoutException,但在正常执行时返回计算结果.

在这种情况下,您需要一个Future< Boolean>,在try-catch块中使用get(1,TimeUnit.SECONDS),根据您的规范处理TimeOutException.

可用的具体实现是FutureTask<V>和@L_502_3@.如果这是在Swing应用程序的上下文中,那么您将要使用后者.

也可以看看

> Effective Java 2nd Edition,Item 68:首选执行程序和任务到线程
> Concurrent Programming with J2SE 5.0
> Java Tutorials/Concurrency
> Java Tutorials/Swing/How to use Threads – 如果您使用Swing,请阅读重要内容

猜你在找的Java相关文章