gpt4 book ai didi

Java Await 语句 - 并发编程

转载 作者:行者123 更新时间:2023-12-01 14:47:54 24 4
gpt4 key购买 nike

我有一个我们的讲师提出的问题。它指的是等待进入环岛的汽车,以免环岛堵塞。据说他给了我们一种使用“await(BS)”语句来解决这个问题的方法,并要求我们将其转换为使用信号量,但是他给出的代码不计算哈哈。我不知道他在玩什么,但这在 Java 中没有意义......任何人都可以帮我翻译这个......

package roundabout;
public class roundabout01
{
Process main;
{
/* declare and initialize global variables */
int NUMBER_OF_CARS = 20;
int numberOnRoundabout = 0;
/* slots on the roundabout */
String slots [] = {"[.....]", "[.....]", "[.....]", "[.....]", "[.....]", "[.....]"};
/* create and set the cars moving */
for (int count = 1; NUMBER_OF_CARS < 6; count++);
{
int entry = 3;
int exit = 3;
carProcess(entry, exit);
// end for; /*end main process*/
}
Process carProcess (int s, int t);
{
<await((numberOnRoundabout<=6), numberOnRoundabout++)>; /* Wait if roundabout crowded*/
/* wait for clearance before moving on to the roundabout */
<await(slots[2..s]=="[.....]"); AND (slots[2..s + 7] mod 8 == "[.....]");
slots[2..s]="["+entry+"-->"+exit+"]";
int currentPosition = 2*s;
int nextPosition = 2*s+1; /* move around to exit position (which is 2t) */
}
do
{
<await(slots[nextPosition]="[.....]");
slots[nextPosition]=slots[currentPosition];
slots[currentPosition]="[.....]">
currentPosition != nextPosition;
nextPosition = (nextPosition + 1) mod 8;
}
while (currentPosition != 2*t);
{
slots[currentPosition]="[.....]";
numberOnRoundabout -- ; /* move off the roundabout */
End carProcess;
}
}
}

预先感谢您的帮助!

最佳答案

他最终告诉我们的是,他给我们的问题是几年前的。问题中的代码是冗余的Java。对于其他有老师的人来说,当这种格式的代码出现“await((numberOnRoundabout<=6), numberOnRoundabout++)”时,它是旧的 Java。翻译后,它将是一系列根据其中设置的条件创建的线程对象。

例如

public synchronized void myStop() {
this.runningFlag=false;
t.interrupt();
} // end myStart

我确实希望没有人需要这些信息!曾经!

关于Java Await 语句 - 并发编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15233444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com