当前位置: 首页 > news >正文

网站免费建设价格app软件下载免费

网站免费建设价格,app软件下载免费,广西营销型网站公司,网站统计付费rx.observable我想探索一个使用Java 8 CompletableFuture和Rx-Java Observable的简单分散聚集场景。 场景很简单–产生大约10个任务#xff0c;每个任务返回一个字符串#xff0c;最终将结果收集到一个列表中。 顺序的 其顺序版本如下#xff1a; public void testSequen… rx.observable 我想探索一个使用Java 8 CompletableFuture和Rx-Java Observable的简单分散聚集场景。 场景很简单–产生大约10个任务每个任务返回一个字符串最终将结果收集到一个列表中。 顺序的 其顺序版本如下 public void testSequentialScatterGather() throws Exception {ListString list IntStream.range(0, 10).boxed().map(this::generateTask).collect(Collectors.toList());logger.info(list.toString()); }private String generateTask(int i) {Util.delay(2000);return i - test; }随着CompletableFuture 可以使用称为supplyAsync的实用程序方法来使方法返回CompletableFuture我正在使用此方法的一种变体它接受要使用的显式Executor 而且我故意为其中一个输入抛出异常 private CompletableFutureString generateTask(int i,ExecutorService executorService) {return CompletableFuture.supplyAsync(() - {Util.delay(2000);if (i 5) {throw new RuntimeException(Run, it is a 5!);}return i - test;}, executorService); } 现在分散任务 ListCompletableFutureString futures IntStream.range(0, 10).boxed().map(i - this.generateTask(i, executors).exceptionally(t - t.getMessage())).collect(Collectors.toList()); 在分散任务结束时结果是CompletableFuture列表。 现在要从中获取String列表有些棘手这里我使用Stackoverflow中建议的一种解决方案 CompletableFutureListString result CompletableFuture.allOf(futures.toArray(new CompletableFuture[futures.size()])).thenApply(v - futures.stream().map(CompletableFuture::join).collect(Collectors.toList())); CompletableFuture.allOf方法在这里纯粹用于组成下一步操作一旦所有分散的任务都完成则一旦完成任务期货就会再次流式传输并收集到字符串列表中。 然后可以异步显示最终结果 result.thenAccept(l - {logger.info(l.toString()); });使用Rx-java Observable 使用Rx-java进行分散收集比使用CompletableFuture版本相对更清洁因为Rx-java提供了更好的方法将结果组合在一起这也是执行分散任务的方法 private ObservableString generateTask(int i, ExecutorService executorService) {return Observable.Stringcreate(s - {Util.delay(2000);if ( i 5) {throw new RuntimeException(Run, it is a 5!);}s.onNext( i -test);s.onCompleted();}).onErrorReturn(e - e.getMessage()).subscribeOn(Schedulers.from(executorService)); } 并分散任务 ListObservableString obs IntStream.range(0, 10).boxed().map(i - generateTask(i, executors)).collect(Collectors.toList()); 我又有了一个Observable的列表而我需要的是一个结果列表Observable提供了一个合并方法来做到这一点 ObservableListString merged Observable.merge(obs).toList(); 可以订阅并在可用时打印结果 merged.subscribe(l - logger.info(l.toString()));翻译自: https://www.javacodegeeks.com/2015/08/using-java-8-completablefuture-and-rx-java-observable.htmlrx.observable
http://wiki.neutronadmin.com/news/189219/

相关文章:

  • 实战网站开发个人网站号备案吗
  • 永灿网站建设公司网络优化软件
  • wordpress站群源码深圳网站开发公司 有哪些
  • 网站开发职位个人网址怎么填写
  • 高端网站建设公司兴田德润可以不wordpress 首页图片
  • 上海网站建设培训寿光市网站建设
  • 网站建设首页布局百度网盘服务电话6988
  • 网站开发原型模板交互设计就业前景
  • 两个域名指向同一个网站信息流广告的特点
  • 爱站网seo工具包张店网站开发招聘
  • 个人公众号做网站宝塔和wordpress
  • 石家庄做网站邮箱电话互联网行业pest分析
  • wordpress菜单栏插件seo网站优化师
  • 建立网站的模板天猫网站建设论文
  • h5网站建设公司wordpress 内容发布
  • rp如何做网站网站设计所用到的技术
  • 东莞网站排名优化价格做一个电商网站要多少钱
  • 江西抚州建设网站广东省招标网采购网
  • 鹤壁做网站公司地州电视网站建设流程
  • 婚恋网站要钱吗淮北建站
  • 西安网站推广公司电话网易企业邮箱登录入口手机网页版
  • 做公司网站都需要哪些东西泰州住房城乡建设网站
  • 建立网站基本步骤招聘网站建设维护
  • 网站开发软件要求wordpress媒体库代码
  • 室内设计方案网站网站风格的设计
  • 静态网站管理系统广告公司好做吗
  • 做网站的版式会侵权吗模板之家如何免费下载
  • 广东企业微信网站建设公司注册地址怎么变更
  • 网站建设软件 优帮云网页制作成品下载
  • 南海做网站网上书城网站建设目的