这是一个相当基本的问题,但我是Twisted的新手。如果reactor循环遇到2个具有完全相同超时值的callLater,并且还遇到一个传入数据包,它将如何调度3个?
callLaters将按照您注册它们的顺序启动。数据包到达可能在callLaters之前或之后触发,具体取决于数据包到达时事件循环中的执行点。
这里没有明确的规则。不同的反应堆可能实施不同的策略。一般来说,这些实现有点特别,设计得也不是特别好,但没有太多的动机来修复它们,因为大多数对不同事件源具有深度排序依赖关系的应用程序实际上都是有缺陷的,应该进行修复,而不必管这些根本不确定的事件到达的顺序。