获取一定时间的结果-Future

Future到底是干什么的?

我一个线程开了100个线程去实行任务。现在,我想在实行一段时间之后就返回结果或者有一个线程实行出错,就终止所有的线程。

我的回答,线程之间的通知,那肯定需要一个全局的通知变量,volatile状态标记。怎么超时之后,返回结果这个没有明了。问题有点开放。

1:ElasticSearch里面是提供了这种机制的,先说场景,一个搜索过去,到各个分片,可能实行的时间有点长,不影响前端的展示效果,设置一个timeout参数即可。但是,这种机制是怎么实现的呢?可以先举例场景。

2:我大概说future.get线程的实行结果。Future到底是什么?可以说什么都不是!就是我开启一个子线程去实行任务,我主线程继续向下实行,当我需要子线程的结果的时候,我future.getRequest()即可。如果,我直接就要结果,那这模式就不适合,就是在这里阻塞等结果的

有什么用呢?

就这
阻塞等结果

至于到时间就返回了结果,这是怎么实现的

好像也只能这样,有什么技巧吗?

推荐阅读更多精彩内容

  • 接着上节 condition_varible ,本节主要先容future的内容,练习代码地址。本文参考http:/...
    jorion阅读 7,496评论 1赞 2
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 141,890评论 18赞 610
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 104,079评论 12赞 125
  • 爱 对我来说就是虚无缥缈 永远都是高高在上 让人难以琢磨 直到有一天 你们的到来 我才明白想念的滋味 父母从来没有...
    布老头和他的家人们阅读 61评论 6赞 2
  • 或许,于平时来说,这只是个普通的周末,但因为夜爬泰山变得如此与众不同。 我都不敢想象自己居然能用6个小时征服泰山,...
    撸铁活力蓝阅读 244评论 57赞 16