两个进程都想进入临界区。
该算法思路:
enterRegion(int process);//进入临界区
criticalRegion();//临界区
leaveRegion(int process);离开临界区
private int turn;//轮到哪一个进程进入临界区
private boolean[] interested = new boolean[]{false,false}//进程打算进入临界区的意愿,下标代表进程号
核心方法:
public void enterRegion(int process){
int other = 1 - process;//表示另一个进程号
interested[process] = true;//表示自己想要进入临界区的意愿
turn = process;//设置轮到自己进入临界区
//如果轮到自己进入临界区但是其他进程在临界区中,只能循环等待
while(turn == process && interested[other] == true){}
}
public void leaveRegion(int process){
interested[process]