我必须用Java编写一个程序,它从CSV文件中获取飞行数据并模拟飞行;也就是说,使用线程来更改每次飞行的状态。下面是来自项目页面的更具体的描述:
编写一个程序来管理与许多航空公司和机场之间的航班状态有关的信息流。航空公司监控器、事件发生器和机场状态监测器将使用提供的CSV文件与每日航班时间表进行初始化。该时间表包括在一天中最繁忙的时间下午4时至5时起飞的航班。
下面是我必须实现的所有线程的描述:
航空公司监视器线程:为每个航空公司启动一个线程,以接收和发布对所涉及的出发和到达城市所表示的线程的更改。例如,如果从BHM到DCA的244航班延误,则将延迟发布到BHM和DCA飞行状态监视器。
机场飞行状态监视器线程:为每个机场启动一个线程,并监视该机场的所有航班。每个机场在生成航班时都会收到来自每一家航空公司的事件。每个线程都会将机场的当前飞行状态发布到到达和离开文件中。
飞行事件生成器线程:启动一个线程来生成航班更改,包括航班延误、登机、左门、起飞、着陆和登机口。
我的问题本质上很简单。我很难为这个项目找到一个好的起点和结构。它应该只是一个主文件与线程编织始终?还是应该实现一个面向对象的结构,为每种类型的线程都提供类?
最后,显然这是生产者-消费者问题的一个复杂的例子。我选择使用循环缓冲区来存储需要在线程之间传递的飞行信息。是否可以举例说明如何针对这类问题(但不是具体的问题)实现循环缓冲区?谢谢!
编辑:--我不需要设计整个机场系统;这是一个具体的多线程项目。考虑CSV文件中的以下行:
1,sw,mdw,mco,1600,:50
这是西南航空公司从芝加哥中途岛飞往奥兰多的第一次航班,于下午16时(下午4:00)起飞,飞行时间为50分钟。我不需要等级机场和航班,这些都是由CSV的数据模拟的。我只是不知道如何处理‘西南’航空公司的线程,'mdw‘和'mco’机场线程,和飞行事件生成器线程,以及它们应该如何交互。
发布于 2013-02-21 16:06:18
看一下医生。您将在那里找到与并发相关的所有API组件:http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/package-summary.html
为了读取文件,我建议使用通道:http://docs.oracle.com/javase/7/docs/api/index.html?java/util/concurrent/package-summary.html
https://stackoverflow.com/questions/15006448
复制相似问题