有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

爪哇舞厅舞者使用信号灯解决问题

我正试图从《信号灯小册子》中为“排他队列”问题编写一个解决方案。问题陈述如下:

想象一下,线代表舞厅舞者,两种舞者,领导者和追随者,在进入舞池前排队等候。当领导者到达时,它会检查是否有追随者在等待。如果是这样的话,它们可以同时进行。否则它会等待

类似地,当跟随者到达时,它会检查是否有领导者,并相应地继续或等待

我在舞厅上了以下课:

public class Ballroom {

public void leaderEntered(){
//the calling leader thread will either block, waiting for
//follower or will proceed to dance
dance();
}

public void followerEntered(){
//the calling followerthread will either block, waiting for
//leader or will proceed to dance
dance();
}

private void dance(){
System.out.println("doing dance");
}

}

这是Leader的代码

mutex.wait()
if followers > 0:
    followers--
    followerQueue.signal()
else:
leaders++
mutex.signal()
leaderQueue.wait()
dance()
rendezvous.wait()
mutex.signal()

下面是追随者的代码

mutex.wait()
if leaders> 0:
   leaders--
   leadersQueue.signal()
else:
followers++
mutex.signal()
followersQueue.wait()
dance()
rendezvous.wait()

我如何继续


共 (1) 个答案