1

我有一个 40 个定期航班的数组;每个航班对象都存储了数据:航班号、航空公司、出发城市、到达城市、飞行时间、飞行长度。

随着每个航班时间的发生,航班事件生成器线程将更改每个航班的状态,从 Scheduled、Departed、Departed、Delayed、Arrived 等。这部分不是问题。

生产者-消费者方面如下。随着这些事件的发生(出发、到达、延误),上述航班事件生成器线程必须将这些更改发布到航空公司线程,每个航空公司都有一个线程(由航班对象指定:西南航空、美国航空等)。然后,这些航空公司线程会将更改发布到每个机场航班监控线程,每个机场一个线程(同样,由航班对象指定)。这些线程依次发布对文件的更改。

我的问题是,我究竟应该如何处理这个看似复杂的生产者-消费者问题?另外,我应该如何处理两个出发时间相同的航班?

4

2 回答 2

2

通常在java中实现Producer/Consumer模式使用java.util.concurrent.BlockingQueue

看看这篇博文。

于 2013-02-21T19:30:17.897 回答
0

通过 Caveofprogramming 在 YouTube 上浏览这些视频教程:

这是使用 Java 开箱即用支持的阻塞队列:
http ://www.youtube.com/watch?v=Vrt5LqpH2D0&list=PLBB24CFB073F1048E

这是如果您想使用等待、通知等编写我们自己的同步逻辑:
http ://www.youtube.com/watch?v=gx_YUORX5vk&list=PLBB24CFB073F1048E

实际上,您应该在他的频道上阅读有关多线程的整个系列。非常好的教程。

于 2013-02-21T19:34:10.457 回答