我有一个程序需要来自 2 个来源的命令。另一个是套接字接口,另一个是事件监听器。
设置监听器后,程序通过调用等待命令:
wait();
命令,当它们到达时,会使用同步方法添加到 Vector (附加到末尾),在添加命令后调用
notify();
发生这种情况时,从 wait() 调用继续执行并处理命令 Vector 的内容,从第一个元素开始。为了测试功能,我在处理方法中添加了一个 Thread.sleep(5000) ,因此处理至少需要 5 秒。
然后我从两个来源生成命令。
事实证明,这些命令不是按照它们到达的顺序处理的!作为事件到达的事件最终会被首先处理,即使来自套接字的命令首先到达。
什么可能导致这种情况?我的设计坏了吗?