我正在尝试将此代码转换为 java 并使用线程来实现它
turn = 0 // shared control variable
while (turn != i);
// CS
turn = (turn + 1) % n;
我真的很努力地找到正确的代码,但我失败了这是我的代码
/*
* Mutual exclusion using thread
*/
class gV{
int turn=0;
}
class newThread extends Thread{
static int i;
int n=10;
newThread(gV obj){
this.i=obj.turn;
start();
}
public void run(){
while(obj.turn!=i&&obj.turn<n);
criticalSection(i);
obj.turn=(obj.turn+1);
i++;
}
public void criticalSection(int numOfProcess){
System.out.println("Process " + numOfProcess + " done!!");
}
}
class MutualExclusion{
public static void main(String args[]){
gV obj = new gV();
new newThread(obj);
}
}
我知道我的代码有一些错误。感谢您的帮助!