当前位置: 首页 > 知识库问答 >
问题:

从客户机实现的角度来看,我能比较一下Java Callable和Angular Observable(RxJS)吗

毕宏盛
2023-03-14

http://winterbe.com/posts/2015/04/07/java8-concurrency-tutorial-thread-executor-examples中,我们看到了这个简单的示例:

ExecutorService executor = Executors.newFixedThreadPool(1);
Future<Integer> future = executor.submit(task);

System.out.println("future done? " + future.isDone()); // prints future done? false

Integer result = future.get();

System.out.println("future done? " + future.isDone()); // prints future done? true
System.out.print("result: " + result); //result: 123

那么,添加我可以控制何时调用Future.get()的想法在实践中与Observable的想法是完全相同的。我的意思是,例如,我可以使用callable调用rest服务,然后在一段时间后获得结果,而不阻塞我的代码,并控制我将接受这个懒惰的Beaviour的最大时间(秒)。

我仔细阅读了Java8流和RxJava可观测数据之间的区别,很明显,Java流与Angular可观测数据有很大不同,但我想知道我是否正确理解了Java callable和ExecutorService的概念。

共有1个答案

易奇希
2023-03-14

我不是一个Java的人,但对我来说callables似乎是JavaScript中promise的对应物。

在非常简短和粗略的比较中,主要的区别是:

  • promises和callables是基于拉式的,而observable是基于推式的,
  • promises和callables只发出一次数据,然后完成,Observables多次发出

那么,添加我可以控制何时调用Future.get()的想法在实践中与Observable的想法是完全相同的。

不,作为使用者,控制何时调用get与控制何时调用then上的promise是一样的。您无法控制可观察对象何时作为使用者发出。

但是ofc和RxJS在很多其他方面有所不同,但这些是主要原因。

 类似资料:
  • 问题内容: 我已经遍历了Google Guava库,并在其中找到了许多很好的可用数据结构。 如果有人使用过它,那么您能否提供有关在与庞大数据集一起使用时其性能的反馈?基本上,我正在为其操作寻找BigO表示法。 提前致谢 问题答案: 番石榴的贡献者在这里。 嗯,有什么要说的?所有基于散列(和基于枚举)的集合都具有恒定时间的单项操作,完全符合您的期望。(,,,,,,,,,等等都属于这一类。)所有基于树

  • 其实并不重要。 已有很多人花费很多笔墨来讨论是使用单引号(')还是双引号(")来定义字符串。 单引号字符串不会被解析,因此放入字符串的任何东西都会以原样显示。 双引号字符串会被解析,字符串中的任何 PHP 变量都会被求值。 另外,转义字符如换行符 \n 和制表符 \t 在单引号字符串中不会被求值,但在双引号字符串中会被求值。 由于双引号字符串在程序运行时要求值,从而理论上使用单引号字符串能提高性能

  • 让我们假设以下两种情况,一个控制器产生一些随机数并带有延迟: 1)反应性Spring5反应性应用: 2)传统的Spring MVC与: 从HTTP客户端(浏览器、AJAX请求)的角度来看,这两种场景之间没有任何区别。我的意思是,客户端将等待所有结果发送,并且在提交整个响应之前不会处理它们。 也就是说,尽管spring web Responsive让我们认为它在生成结果时会将结果发送回去,但实际上情

  • 我知道这些接口用于对集合中的对象进行排序。但我怀疑这两者的真正区别。我读到的一个事实是,如果要比较两个对象而不使用当前对象,请使用Compariable(此)。 但我的问题是即使使用比较器,我们也会比较相同的对象类型。 这里真正的区别是什么。我很困惑。假设下面的例子, 如果我使用比较器,我会让一个类实现比较器,而不是这个。年龄,它有人。年龄那么这里有什么不同呢? 我不知道Collections.s

  • 我在理解和使用比较器方面有一个问题,有人问我以下问题: 我在一个单独的Employee类中使用compareTo比较器接口来调用比较器对象的重载使用。 任何帮助,建议,代码行将非常感谢!!

  • 本文向大家介绍请你比较一下Java和JavaSciprt?相关面试题,主要包含被问及请你比较一下Java和JavaSciprt?时的应答技巧和注意事项,需要的朋友参考一下 考察:Java&JavaScript JavaScript 与Java是两个公司开发的不同的两个产品。Java 是原Sun Microsystems公司推出的面向对象的程序设计语言,特别适合于互联网应用程序开发;而JavaScr