繁体   English   中英

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

[英]Structure of a Multithreaded Flight Control Program in Java

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

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

现在,这是我必须实现的所有线程的描述:

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

机场航班状态监视器线程:启动每个机场的线程并监视该机场的所有航班。 每个机场在生成航班事件时都会接收来自每个航空公司的航班事件。 每个线程都会将机场的当前航班状态发布到到达和起飞文件中。

Flight Event Generator线程:启动一个线程以生成航班变更,包括延误,登机,左闸,起飞,着陆和登机口。

我的问题本质上很简单。 我正在努力寻找程序的良好起点和结构。 它应该只是一个贯穿整个线程编织的主文件吗? 还是应该使用每种线程的类来实现面向对象的结构?

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

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

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

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

看一下文档。 您将在此处找到与并发相关的所有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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM