我相信反应式系统应该是异步的,但我多次无意中听到 Akka 有同步 actor?
那么这是否意味着 Akka 是同步的?或者参与者以同步方式工作但系统由于多个参与者而异步?
Scala 有同步actor。Akka actor 从一开始就是异步的。反应式程序可以以任何一种方式实现,同步和异步。响应式程序唯一有意义的要求是支持背压。在同步编程中,通过阻塞参与线程以自然的方式提供背压。当线程阻塞被禁止时,异步提供背压是很棘手的。为此,设计了反应流协议。Akka actor 不支持此协议,因此不能被视为反应式,但Akka Streams 支持。
Reactive-streams 协议也可以很容易地与线程、信号量和阻塞队列同步实现,也就是说,反应程序不被认为是异步的。通常,同步编程更容易,与异步编程相比,它唯一的缺点是线程堆栈的内存消耗。
总之,反应与否,异步与否,都是独立的特征,它们可以以各种组合出现。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句