使用Semaphores解决这种情况的最佳解决方案是什么?

时间:2013-04-30 15:19:42

标签: java concurrency semaphore

我想试用Java Semaphores,所以我想到了这个问题:

有一个火车站和两条铁路正在穿越,一条向东,另一条向南。因此,当然我们应该在每个铁路的十字架末端获得传感器,告诉我们火车何时越过,南部或东部铁路可以让火车开始。

到目前为止,我认为传感器将是Semaphores,火车类将是Threads,我可以有任何类型的铁路班,我可以将列车运行。

Model for problem

我是Java Semaphores的新手,任何建议都会受到赞赏

1 个答案:

答案 0 :(得分:6)

您应该只阻止条目到受保护区域。把信号量放在那里。

实际上,你应该使用一个信号量,一个许可证,因为你有一个可保护的资源。列车(Thread s)将在它们进入之前获得它,并在它们离开车站后释放。