消息传递在反应系统中的作用

时间:2018-06-24 07:09:05

标签: reactive-programming reactive-streams

以下摘录自here

  

反应式系统的基础是消息传递,它在组件之间创建了一个时间边界,允许它们在时间上解耦(这允许并发)和空间(从而允许分布和移动性)。

就编程而言,这部分到底意味着什么?

时间去耦如何允许并发?

1 个答案:

答案 0 :(得分:0)

当您将消息发送到另一个(远程)组件并且不等待/阻止它们处理消息或响应时,“主线程”继续。 这样就可以发送更多消息或执行其他操作。

myMessageChannelToSystemA.send(new StringMessage("Turn on the light"));
myMessageChannelToSystemB.send(new StringMessage("Open the windows"));
myMessageChannelToSystemC.send(new StringMessage("Close the door"));

在这种情况下,我告诉三个组件执行某项操作。而且因为我不等待他们这样做,所以他们可以并行完成任务。

相反

systemA.turnOnLight(); // blocking?
systemB.openWindows(); // blocking?
systemC.closeDoor(); // blocking?

可能会导致顺序处理(例如,远程过程调用)。

异步消息传递就像发送电子邮件一样。您可以发送其中几个邮件,而无需等待收件人处理/应答它们。