Java多线程飞行控制程序的结构

Java多线程飞行控制程序的结构,java,multithreading,buffer,producer-consumer,Java,Multithreading,Buffer,Producer Consumer,我必须用Java编写一个程序,从CSV文件中获取飞行数据并模拟飞行;也就是说,使用线程更改每个航班的状态。以下是项目页面中更具体的描述: 编写一个程序,管理许多航空公司和机场的航班状态信息流。航空公司监控器、事件生成器和机场状态监控器将使用提供的CSV文件,使用每日航班时刻表进行初始化。该时间表涵盖了在一天中最繁忙时间下午4-5点起飞的航班 下面是我必须实现的所有线程的描述: 航空公司监控线程:为每个航空公司启动一个线程,以接收和发布对相关出发和到达城市所代表线程的更改。例如,如果从BHM到DC

我必须用Java编写一个程序,从CSV文件中获取飞行数据并模拟飞行;也就是说,使用线程更改每个航班的状态。以下是项目页面中更具体的描述:

编写一个程序,管理许多航空公司和机场的航班状态信息流。航空公司监控器、事件生成器和机场状态监控器将使用提供的CSV文件,使用每日航班时刻表进行初始化。该时间表涵盖了在一天中最繁忙时间下午4-5点起飞的航班

下面是我必须实现的所有线程的描述:

航空公司监控线程:为每个航空公司启动一个线程,以接收和发布对相关出发和到达城市所代表线程的更改。例如,如果从BHM到DCA的244航班延误,将延误发布到BHM和DCA航班状态监视器

机场航班状态监控线程:为每个机场启动一个线程,并监控该机场的所有航班。每个机场在生成航班事件时接收来自各航空公司的航班事件。每个线程将机场的当前航班状态发布到到达和离开文件中

航班事件生成器线程:启动单个线程以生成航班更改,包括延迟、登机、左登机门、起飞、着陆和登机门处

我的问题本质上很简单。我正在努力为这个项目找到一个好的起点和结构。它应该仅仅是一个主文件,并且线程贯穿其中吗?或者我应该实现一个面向对象的结构,为每种类型的线程提供类

最后,显然这是生产者-消费者问题的一个复杂例子。我选择使用循环缓冲区来存储需要在线程之间传递的航班信息。是否可以给出一个示例,说明如何针对这类问题(但不是具体针对这类问题)实现循环缓冲区?谢谢

编辑:我不必设计整个机场系统;这是一个多线程项目。从CSV文件中考虑下面的行:

1,sw,mdw,mco,1600,:50

这说明这是西南航空公司当天的第一次航班,从芝加哥中途飞往奥兰多,起飞时间为1600小时(下午4:00),飞行时间为50分钟。我不需要在机场和航班上上课;这些是通过CSV中的这些数据模拟的。我只是不知道如何处理“西南”航空公司线程、“mdw”和“mco”机场线程,以及航班事件生成器线程,以及它们应该如何交互。

看看文档。您将在此处找到与并发相关的所有API组件:

为了阅读该文件,我建议使用以下频道:

这一点都不简单。这是一个主要的设计工作,您只提供了一个粗略的规范。忘记线程,从机场、航班等的设计类开始。编辑以演示为什么设计不像看上去那么大规模。我不必对航班和机场进行任何操作,只需用线程监控和发布它们。