我相信反应式系统应该是异步的,但我无意中多次听说Akka有同步参与者?
那么这是否意味着Akka是同步的呢?或者参与者以同步方式工作,但由于多个参与者,系统是异步的?
发布于 2020-01-31 02:37:02
Scala有同步的参与者。Akka参与者从一开始就是异步的。反应式程序可以以任何一种方式实现,同步的和异步的。响应式程序的唯一有意义的要求是支持背压。在同步编程中,通过阻塞参与的线程以自然的方式提供背压。当线程阻塞被禁止时,异步提供背压是很棘手的。为此,reactive-streams protocol应运而生。Akka参与者不支持此协议,因此不能被认为是反应性的,但Akka Streams支持。
Reactive-streams protocol还可以很容易地与线程、信号量和阻塞队列同步实现,也就是说,反应式程序不被视为异步程序。一般来说,同步编程更容易,与异步编程相比,它唯一的缺点是线程堆栈的内存消耗。
总而言之,反应性或非反应性,以及异步与否,都是独立的特征,它们可以在所有组合中出现。
https://stackoverflow.com/questions/59982181
复制相似问题