answersLogoWhite

0

while(1) { // thread i (0 <= i < n)

for (j=1 ; j<n ; j++) {

flag[i]=j;

last[j]=i;

for (k=0 ; k<n ; k++) {

if (k==i) continue;

while (flag[k]>=flag[i] && last[j]==i) {

sleep(random());

}

}

}

// critical section

...

// end of critical section

flag[i]=0;

// not critical section

...

// end of not critical section

}

User Avatar

Wiki User

12y ago

What else can I help you with?