java - Observable|观察者模式的基本实现

标签 java concurrency

我的问题可能听起来很愚蠢。然而,如果有人能帮助我澄清它,那将是一个很大的帮助。谢谢。

我的第一个问题是:我可以说以下并发框架基于 Observable|Observer 模式的相同思想吗? (运行执行然后监听结果)

  • Guava 可听 future
  • ReactiveX 可观察
  • Java 的 future

我的第二个问题属于等待结果的部分。如果我做出以下陈述,我是对还是错:

虽然在上述并发框架中我们有不同的等待结果的方式,但它们都需要一个持续检查结果的机制,可以是

while(result is not there){
  sleep for dd milliseconds
}

然后根据框架的开发方式,会添加线程、超时检查……功能。

最佳答案

对于你的第一个问题/陈述:你(以及我和唐纳德·特朗普)可以说任何我们喜欢的内容,技巧是用令人信服的论据来支持我们所说的话为什么是正确的。但更简洁地说,我认为你的观点大体上是正确的。

关于你的第二个问题:你的说法是错误的。首先,Observable 使用回调模式。实现这一点的最简单方法是在观察到的更改发生后,使用同一线程通知所有已注册的 Observables。

此外,锁和锁定机制也被大量使用,尤其是线程。因此,当一个线程在另一个线程上调用 thread.join() 时,该线程至少可以/应该保留等待其完成的其他线程的列表,因此一旦完成,它就可以将它们全部唤醒。这样,就不需要忙/主动检查完成情况。

关于java - Observable|观察者模式的基本实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36317813/

相关文章:

java - jSSC 未检测到 Com 端口

java - 这个LimitedInputStream正确吗?

java - 死锁检测的成本如何?

java - java并发编程问题

iphone - 可以从其他后台线程启动后台线程吗? (NSObj)

java - 如何为play框架添加依赖项gson

java - 如何在 Java 中制作 InputStream 的深拷贝

java - reCaptcha 在用 Google 验证时总是返回 false

java - 网络服务器流式传输数据数组中的消费者-生产者问题

java - Java 中的 ArrayList 是否可以通过索引锁定单个元素?