Nic*_*ner 1 java concurrency notify
为了好玩,我正在编写香蕉图的模拟。我想使用并发,但我不完全确定如何使用。
我在一个Game类中有一个主要方法。每个播放器线程都致力于解决方案。在某些时候,玩家会“剥皮”。在此操作期间,每个玩家都会得到一张新牌。播放器线程之一必须通知Game线程。
伪代码如下所示:
while (no player has reported they are finished) {
if (player reports it is time to peel) {
everyone peel
}
everyone work towards completion of puzzle
}
Run Code Online (Sandbox Code Playgroud)
我如何在 Java 中实现它?(我不一定要寻找完全充实的解决方案,只是指出我正确的方向。)我想如何处理对象之间的通知?
澄清一下:这不是用户互动游戏。我只是想尝试不同的算法,看看哪种算法可以最快地解决问题。如果有的话,“游戏”将编写一个算法并将其插入以查看它是如何工作的。
这将是使用Cyclic Barrier的好地方。
本质上,循环屏障让线程做一些工作,然后让所有线程等待,直到它们都到达同一点,然后每个线程再次启动。
所以,你可以让每个玩家剥皮,然后调用 CyclicBarrier.await()。然后所有线程将等待,直到每个线程都达到该点。这似乎是你想要的。
(此外,您显然并不真正需要并发:)
| 归档时间: |
|
| 查看次数: |
909 次 |
| 最近记录: |