以下摘录自here:
反应式系统的基础是消息传递,它在组件之间创建了一个时间边界,允许它们在时间上解耦(这允许并发)和空间(从而允许分布和移动性)。
就编程而言,这部分到底意味着什么?
时间去耦如何允许并发?
答案 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?
可能会导致顺序处理(例如,远程过程调用)。
异步消息传递就像发送电子邮件一样。您可以发送其中几个邮件,而无需等待收件人处理/应答它们。