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

die*_*lar 4 java concurrency semaphore

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

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

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

问题的模型

我是Java Semaphores的新手,任何建议都将不胜感激

gab*_*sch 6

您应该只阻止进入受保护区域.把信号量放在那里.

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