首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Future.get()超时精度和可能的替代方案

Future.get()超时精度和可能的替代方案
EN

Stack Overflow用户
提问于 2014-04-21 14:53:18
回答 1查看 774关注 0票数 0

我有一些受时间限制的任务。任务是对服务器的请求,结果是响应。时间大约是10毫秒。时间结束后,我希望立即(或在2-5毫秒内)或null接收结果。因此,我将我的任务打包为可调用的,并天真地希望带有超时的Future.get()在超时到达后立即抛出异常。但是,正如我所看到的,带有超时值的Future.get()不能提供这样的精度。在我的简单测试中,它有12毫秒的偏差,而且没有高负载。现在我知道这是未来的正常行为。但我的任务还在那里,如果能有更精确的超时,那就太好了。我听说过Java实时系统,但对我来说,它似乎是非常复杂的工具。对于Future.get()和alternatives系统有什么简单的替代方案吗?

EN

回答 1

Stack Overflow用户

发布于 2014-04-21 15:07:36

您是否考虑过将时间记录在用于调用请求的同一个线程中?您可以从底层线程抛出异常,当调用Future.get()时,将在那里抛出这些异常。

我不确定您是否熟悉非阻塞-io,但是这样您就不需要阻止从流中读取并继续计算(即记录操作所需的时间)。

编辑:

*包是一个使用jse1.7及更高版本的非阻塞io包。下面是一个使用它的基本示例的链接:

http://www.studytrails.com/java-io/non-blocking-io-multiplexing.jsp

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23199820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档