Question: implement this code using syncronized import java.util.Random; import java.util.concurrent.*; public class MonkeyPass{ static int path=0; public static void main(String[] args){ Semaphore sem=new Semaphore(1); Monkey arr[]=new
implement this code using syncronized
import java.util.Random;
import java.util.concurrent.*;
public class MonkeyPass{
static int path=0;
public static void main(String[] args){
Semaphore sem=new Semaphore(1);
Monkey arr[]=new Monkey[10];
Gorilla Garr[]=new Gorilla[5];
int count=1;
for(int i=0;i<5;i++){
Garr[i]=new Gorilla(sem);
Garr[i].start();
}
for(int i=0;i<10;i++){
arr[i]=new Monkey(sem);
if(i==0){
count++;
continue;
}
if(i>0 && arr[i-1].dir==arr[i].dir){
count++;
continue;
}
else{
arr[i-1].count=count;
arr[i-1].start();
count=1;
}
}
}
}
class Monkey extends Thread{
public boolean dir;
Semaphore sem;
public int count;
public Monkey(Semaphore sem){
this.sem=sem;
Random o=new Random();
this.dir= o.nextBoolean();
}
public void run(){
try {
sem.acquire();
System.out.println(count+" Monkey(s) "+show());
sem.release();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
private String show(){
if(this.dir){
return "Going";
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
