我似乎有一个小问题。我有一个空中交通管制应用程序,有两个要在Java中同步的跑道。这样做是因为,如果在飞机1着陆的过程中有一架飞机2着陆,则它(飞机2)不必等待,而是可以迅速移至飞机2的跑道着陆。
我已经成功同步了一条跑道,并使用一条ArrayList
来存储飞机的详细信息和着陆工作,但是,第二架飞机的着陆将需要等待(大约5秒钟)。关于如何同步两个跑道的任何想法吗?
我现在的想法是有两个ArrayLists
(一个ArrayList(Even)
存储偶数编号的平面,例如平面2,平面4),另一个ArrayList(Odd)
存储奇数编号的平面,例如。一架飞机,三架飞机。然后,我可以使ArrayList (Even)
与第一跑道一起工作,并且使ArrayList (Odd)
与第二跑道一起工作(使用我对第一跑道进行的单独同步技术)。缺点是,如果我在ArrayList Odd
中添加2个奇数编号的飞机并在ArrayList
中添加20个偶数编号的飞机,则当第二条跑道空闲时,将不使用它。相反,将仅使用一条跑道,而偶数编号的飞机将不得不等待。
旁注:我确实了解到,如果两个跑道都被占用,则第三架飞机将不得不等待,但是根据标记方案,这是可以接受的。
有什么建议 ?
谢谢
最佳答案
要正确执行此操作,您只需要将传入的飞机放入一个队列。 Java提供了一个队列实现,我建议您使用它,而不要自己滚动。
设置好队列后,您需要两个跑道对象和一个“空中交通管制员”。空中交通管制员负责检查跑道,是否有空将一架飞机从队列中弹出并告知其降落。
关于java - 如何同步两个跑道,以便飞机可以使用Java降落?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3232520/