나는 자바에이 코드를 변환 할 노력하고있어 나는 정말 바로 코드에 도달하기 위해 열심히 노력하고 있습니다은 상호 배제 코드
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);
}
}
제 코드에는 실수가 있습니다. 도와 주셔서 감사합니다!
'synchronised' 또는 이것을 위해 존재하는 JDK의 많은 클래스 중 하나를 사용하는 대신 자신의 동기화 코드를 구현하는 이유가 있습니까? – millimoose