响应式编程实战:构建弹性、可伸缩、事件驱动的分布式系统
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 响应式软件并不是一件新鲜事

但是我们刚刚给出的定义6并不是突破性的。相反,你可能会感觉这些内容似曾相识,不是吗?软件的本质难道不是对用户输入和操作系统信号做出响应吗?当你击键时,软件是如何运行的?它会响应。那么,如果只是普通软件,为什么会有那么多关于响应式的书籍、演讲和辩论呢?请耐心点,还有一点。

但你是对的,响应式并不是什么新鲜事。这个概念其实很早就有了。我们可以在20世纪50年代计算机出现之后就追踪到响应式软件背后的思想基础。第一代计算机DYSEAC(1954年投入使用)已经使用硬件中断作为优化,消除了轮询循环中的等待时间。这台计算机是最早使用响应式和事件驱动架构的系统之一!

对事件做出响应意味着受事件驱动。事件驱动的软件系统接收并生成事件。接收到的事件决定了程序的流程。事件驱动的一个基本方面是异步性:你不知道何时接收事件[1]。这正是上一节的定义1。你无法计划何时接收事件,也无法控制将接收哪些事件,你需要做好处理这些事件的准备。这就是响应的本质:异步。