Java,多个线程,一次只执行一个

Som*_*dom 4 java multithreading critical-section

我正在进行一项任务,必须创建两个类,一个代表一个人,另一个代表一个桥.任何时候只有一个人可以"穿越"这座桥,但可能有人在等待穿越

我通过多线程轻松实现了这一功能,允许多个人同时进行交叉,但是在更改它时只有一个线程运行时我遇到了问题...

我的主要问题是他们想要的类设计,我必须在person类中开始线程,但是桥类需要能够等待并通知它们启动/停止

我有什么想法可以做到这一点?

Sta*_*key 5

你可能想要阅读waitnotify.有谷歌搜索教程.

但是在你了解它们之后,你想让人物对象调用wait.然后你想要桥对象来调用notify.当一个人对象返回时wait,轮到他们交叉(因为我理解你的问题.)当这个人穿过时,桥对象会notify再次调用.

确保你synchronize正确.教程应该有所帮助.

阅读这个问题:如何在Java中使用wait和notify?