编写异步代码需要处理执行顺序之间的依赖关系,而不管最终的顺序是什么。这就是为什么使用“回调”这样的结构。他们对处理器说,“接下来要做的就是告诉另一个堆栈我们做了什么”。通过使用这些工具,您可以确保其他堆栈在允许操作系统运行更多指令之前得到通知。(“ If call _ back = = false: send (no _ operation)”——不确定这是否是它实现的方式,但从逻辑上讲,我认为它是一致的。)
不知道这是否有帮助,但是,我总是发现多种解释有帮助。另外,请注意,异步执行不限于单个计算机及其处理器。一般来说,它处理的是时间,或者(更一般地说)事件的顺序。因此,如果您将依赖堆栈 A 发送到网络节点 X,并将其耦合堆栈 B 发送到 Y,那么正确的异步代码应该能够解释这种情况,就好像它在您的笔记本电脑上本地运行一样。